Presto(Trino)로 Hive warehouse 데이터 분석

Prev Next

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)는 사용하지 않습니다.

chadoop-4-8-001_ko

Presto(Trino) connector 구성

Ambari UI 페이지에서 Presto(Trino) connector 관련 구성 설정을 변경할 수 있습니다.
Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI 가이드를 참조해 주십시오.

Presto(Trino)의 Connector 구성을 변경하는 방법은 다음과 같습니다.

  1. Ambari UI에 접속한 후 Trino > [CONFIGS] > Advanced trino.connectors.properties를 클릭해 주십시오.
  2. 구성 설정 화면에서 connectors.to.add에는 추가할 connector를, 삭제할 connector가 있을 경우 connectors.to.delete에 삭제할 connector를 입력한 후 [Save] 버튼을 클릭해 주십시오.
    chadoop-4-8-002_ko
  • 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"
      ]
    }
    
  1. [ACTIONS] > Restart All을 클릭해 주십시오. 팝업창의 [CONFIRM RESTART ALL] 버튼을 클릭한 후, 서비스를 재시작하여 새로운 구성을 반영해 주십시오.
    chadoop-4-8-002-1_ko
참고

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 테이블 쿼리를 실행하는 방법은 다음과 같습니다.

  1. 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
  1. Hive 데이터베이스 안에 있는 테이블을 대상으로 쿼리를 수행한 후, 다음과 같이 결과를 확인해 주십시오.
trino:default> describe allstarfull;

chadoop-4-8-003_ko

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

chadoop-4-8-004_ko