Presto(Trino)で Hive warehouseデータ分析

Prev Next

最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。

VPC環境で利用できます。

本ガイドでは、Prestoの Hive Connectorを使用して Hive data warehouseに保存したデータを分析する方法について説明します。

参考
  • Cloud Hadoop 1.9までは Prestoを、Cloud Hadoop 2.0では Trinoという名前を使用します。

アーキテクチャ

Prestoはインタラクティブのクエリ用途であり、Hiveはバッチタスクを中心に使用します。Oozieや Airflowといったアプリケーションを用い、バッチタスクをスケジュールできます。

Prestoでは、Connectorを用いて多様なデータソースにアクセスするだけでなく、1つのクエリで複数のデータソースにクエリできます。Hive Connectorを用いると、Prestoは Hive metadataと Hive warehouseに保存されたデータのみ使用し、HiveQLや Hiveのクエリ実行エンジン(MapReduce)は使用しません。

chadoop-4-8-001_ko

Presto connectorの構成

Ambari UIページで Presto connector関連の構成設定を変更できます。
Ambari UIへのアクセスや使用に関する詳細は、Ambari UIガイドをご参照ください。

Prestoの Connector構成を変更する方法は、次の通りです。

  1. Ambari UIにアクセスし、Presto > [CONFIGS] > Advanced trino.connectors.propertiesをクリックします。
  2. 構成の設定画面で、connectors.to.addには追加する connectorを、削除する connectorがある場合は connectors.to.deleteに削除する connectorを入力し、 [Save] ボタンをクリックします。
    chadoop-4-8-002_ko
  • Prestoは、使用する Connectorのインスタンスごとに /etc/presto/catalog の下位に configファイル {connector-name}.propertiesが必要です。複数の Hiveクラスタを Prestoと連携するには、それぞれのクラスタに configファイルを設定します。

connector-name-1.propertiesconnector-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.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を実行するノードに存在する必要があります。

参考

Prestoの構成(configuration)に関する詳細は、Presto Documentationをご参照ください。

Hiveテーブルクエリを実行

このガイドでは、Hive を使用するガイドで作成した allstarfull テーブルにクエリを実行しました。

Hiveテーブルクエリを実行する方法は、次の通りです。

  1. Presto CLIコンポーネントがインストールされたノードにアクセスし、以下のコマンドで Presto 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のデータベースにあるテーブルに対してクエリを実行し、以下のように結果を確認します。
presto:default> describe allstarfull;

chadoop-4-8-003_ko

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

chadoop-4-8-004_ko