- 인쇄
- PDF
Presto(Trino)로 Hive warehouse 데이터 분석
- 인쇄
- PDF
이 가이드에서는 Presto의 Hive Connector를 사용하여 Hive data warehouse
에 저장한 데이터를 분석하는 방법을 설명합니다.
- Cloud Hadoop 1.9까지는 Presto 란 이름으로 사용되었고, Cloud Hadoop 2.0 에서는 Trino 라는 이름으로 사용됩니다.
아키텍처
Presto는 인터렉티브 쿼리 용도로, Hive는 배치 작업 위주로 사용합니다. Oozie, Airflow와 같은 애플리케이션을 사용해서 배치 작업을 스케줄링할 수 있습니다.
Presto는 Connector를 사용해서 다양한 데이터 소스에 접근할 수 있을 뿐만 아니라, 하나의 쿼리에서 여러 데이터 소스에 질의할 수 있습니다. Hive Connector를 사용하면, Presto는 Hive metadata와 Hive warehouse에 저장된 데이터만 사용하고 HiveQL이나 Hive의 쿼리 실행 엔진(MapReduce)는 사용하지 않습니다.
Presto connector 구성
Ambari UI 페이지에서 Presto connector 관련 구성 설정을 변경할 수 있습니다.
Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI 가이드를 참고해 주십시오.
Presto의 connector 구성을 변경하는 방법은 다음과 같습니다.
- Ambari UI에 접속한 후 Presto > [CONFIGS] > Advanced connectors.properties를 클릭해 주십시오.
- 구성 설정 화면에서
connectors.to.add
에는 추가할 connector를, 삭제할 connector가 있을 경우connectors.to.delete
에 삭제할 connector를 입력하고 [Save] 버튼을 클릭해 주십시오.
- Presto는 사용할 Connector 개체마다
/etc/presto/catalog
아래에 config 파일{connector-name}.properties
이 필요합니다. 따라서 여러 개의 Hive 클러스터를 Presto와 연동하려면, 각각의 클러스터마다 config 파일을 설정해야 합니다.
connector-name-1.properties
, connector-name-2.properties
파일을 만들려면 connectors.to.add
에 다음과 같이 설정해 주십시오.
{"connector-name-1":["key1=value1",
"key2=value2",
"key3=value3"],
"connector-name-2": ["key1=value1"]
}
이 가이드 예시에서는 Hive Connector를 추가해야 하므로, connectors.to.add
에 아래와 같이 입력해 주십시오.
<METASTORE-HOST-IP>
에는 마스터 노드의 Private IP를 입력해 주십시오.
{"hive":["connector.name=hive-hadoop2",
"hive.metastore.uri=thrift://<METASTORE-HOST-IP>:9083",
"hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml",
"hive.s3.use-instance-credentials=false",
"hive.s3.aws-access-key=<API-ACCESS-KEY>",
"hive.s3.aws-secret-key=<API-SECRET-KEY>",
"hive.s3.endpoint=https://kr.object.fin-ncloudstorage.com"]
}
- [ACTIONS] > Restart All을 클릭해 주십시오. 팝업창의 [CONFIRM RESTART ALL] 버튼을 클릭한 후, 서비스를 재시작하여 새로운 구성을 반영해 주십시오.
Hadoop 구성파일(/etc/hadoop/conf/core-site.xml
, /etc/hadoop/conf/hdfs-site.xml
)이 Presto를 실행하는 노드에 존재해야 합니다.
Presto 구성(configuration)에 대한 자세한 내용은 Presto Documentation을 참조해 주십시오.
Hive 테이블 쿼리 실행
이 가이드에서는 Hive 사용 가이드에서 생성한 allstarfull
테이블로 쿼리를 수행했습니다.
Hive 테이블 쿼리를 실행하는 방법은 다음과 같습니다.
- Presto CLI 컴포넌트가 설치된 노드에 접속한 후, 다음 명령어로 Presto CLI를 실행해 주십시오.
<COORDINATOR-HOST-IP>
에는 엣지 노드의 Private IP를 입력해 주십시오.
/usr/lib/presto/bin/presto-cli --server <COORDINATOR-HOST-IP>:8285 --catalog hive --schema default
- Hive 데이터베이스 안에 있는 테이블을 대상으로 쿼리를 수행한 후, 다음과 같이 결과를 확인해 주십시오.
presto:default> describe allstarfull;
presto:default> SELECT playerid, sum(gp) from allstarfull group by playerid;