- 印刷する
- PDF
Presto(Trino) を用いたHive Warehouseデータの分析
- 印刷する
- PDF
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)は使用しません。
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.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;