VPC 환경에서 이용 가능합니다.
이 가이드에서는 Presto(Trino)의 Hive Connector를 사용하여 Hive data warehouse에 저장한 데이터를 분석하는 방법을 설명합니다.
- Cloud Hadoop 1.9까지는 Presto 란 이름으로 사용되었고, Cloud Hadoop 2.0 에서는 Trino 라는 이름으로 사용됩니다.
아키텍처
Presto(Trino)는 인터렉티브 쿼리 용도로, Hive는 배치 작업 위주로 사용합니다. Oozie, Airflow와 같은 애플리케이션을 사용해서 배치 작업을 스케줄링할 수 있습니다.
Presto(Trino)는 Connector를 사용해서 다양한 데이터 소스에 접근할 수 있을 뿐만 아니라, 하나의 쿼리에서 여러 데이터 소스에 질의할 수 있습니다. Hive Connector를 사용하면, Presto(Trino)는 Hive metadata와 Hive warehouse에 저장된 데이터만 사용하고 HiveQL이나 Hive의 쿼리 실행 엔진(MapReduce)는 사용하지 않습니다.

Presto(Trino) connector 구성
Ambari UI 페이지에서 Presto(Trino) connector 관련 구성 설정을 변경할 수 있습니다.
Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI 가이드를 참조해 주십시오.
Presto(Trino)의 Connector 구성을 변경하는 방법은 다음과 같습니다.
- Ambari UI에 접속한 후 Trino > [CONFIGS] > Advanced trino.connectors.properties를 클릭해 주십시오.
- 구성 설정 화면에서
connectors.to.add에는 추가할 connector를, 삭제할 connector가 있을 경우connectors.to.delete에 삭제할 connector를 입력한 후 [Save] 버튼을 클릭해 주십시오.

-
Presto(Trino)는 사용할 Connector 개체마다
/etc/trino/conf/catalog아래에 config 파일{connector명}.properties이 필요합니다. 따라서 여러 개의 Hive 클러스터를 Presto(Trino)와 연동하려면, 각각의 클러스터마다 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"] }
-
입력한 설정은 서버 내
{connector명}.properties파일로 생성됩니다. 파일 내용을 확인하려면 아래 명령어를 사용해 주십시오.cd ../../etc/trino/conf/catalog vi {connector명}.properties
-
이 가이드 예시에서는 Hive Connector를 추가해야 하므로,
connectors.to.add에 아래와 같이 입력해 주십시오.{ "hive": [ "connector.name=hive", "hive.security=allow-all", "hive.recursive-directories=true", "hive.non-managed-table-writes-enabled=true", "hive.non-managed-table-creates-enabled=true", "hive.metastore.uri=thrift://metastore.datacatalog-svc.naverncp.com:30773", "hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml", "hive.translate-hive-views=true", "hive.legacy-hive-view-translation=true", "hive.s3.aws-access-key=<API-ACCESS-KEY>", "hive.s3.aws-secret-key=<API-SECRET-KEY>", "hive.s3.endpoint=kr.object.private.ncloudstorage.com" ] }
- [ACTIONS] > Restart All을 클릭해 주십시오. 팝업창의 [CONFIRM RESTART ALL] 버튼을 클릭한 후, 서비스를 재시작하여 새로운 구성을 반영해 주십시오.

Hadoop 구성 파일(/etc/hadoop/conf/core-site.xml, /etc/hadoop/conf/hdfs-site.xml)이 Presto(Trino)를 실행하는 노드에 존재해야 합니다.
Presto(Trino) 구성(configuration)에 대한 자세한 내용은 Presto(Trino) Documentation을 참조해 주십시오.
Hive 테이블 쿼리 실행
이 가이드에서는 Hive 사용 가이드에서 생성한 allstarfull 테이블로 쿼리를 수행했습니다.
Hive 테이블 쿼리를 실행하는 방법은 다음과 같습니다.
- Trino CLI 컴포넌트가 설치된 노드에 접속한 후, 다음 명령어로 Trino CLI를 실행해 주십시오.
<COORDINATOR-HOST-IP>에는 엣지 노드의 Private IP를 입력해 주십시오.
/home1/cdp/usr/nch/3.1.0.0-78/trino/bin/trino-cli --server <COORDINATOR-HOST-IP>:8285 --catalog hive --schema default
- Hive 데이터베이스 안에 있는 테이블을 대상으로 쿼리를 수행한 후, 다음과 같이 결과를 확인해 주십시오.
trino:default> describe allstarfull;

trino:default> SELECT playerid, sum(gp) from allstarfull group by playerid;
