Trino は、インタラクティブな分析のためのオープンソースの分散 SQL クエリエンジンです。このトピックでは、JindoSDK と Trino を使用して OSS-HDFS のデータをクエリする方法について説明します。
前提条件
デプロイメント環境として使用する ECS インスタンスを購入済みであること。 詳細については、「ECS インスタンスの購入」をご参照ください。
Hadoop 環境を作成済みであること。 詳細については、「Hadoop ランタイム環境の作成」をご参照ください。
Trino をデプロイ済みであること。 詳細については、「Trino のデプロイ」をご参照ください。
OSS-HDFS を有効化し、必要な権限を付与済みであること。 詳細については、「OSS-HDFS の有効化」をご参照ください。
手順
ECS インスタンスに接続します。 詳細については、「インスタンスへの接続」をご参照ください。
JindoSDK を構成します。
JindoSDK JAR パッケージの最新バージョンをダウンロードします。 ダウンロードリンクについては、「GitHub」をご参照ください。
JindoSDK JAR パッケージを解凍します。
次のコマンドは、
jindosdk-x.x.x-linux.tar.gzを解凍する方法を示しています。 異なるバージョンの JindoSDK を使用する場合は、パッケージ名を実際のパッケージ名に置き換えてください。tar zxvf jindosdk-x.x.x-linux.tar.gz説明x.x.x は JindoSDK JAR パッケージのバージョン番号を表します。
JindoSDK JAR パッケージを Trino クラスパスにインストールします。
cp jindosdk-x.x.x-linux/lib/*.jar $Trino_HOME/plugin/hive-hadoop2/
OSS-HDFS 実装クラスと AccessKey を構成します。
すべての Trino ノードで、OSS-HDFS 実装クラスを Hadoop core-site.xml 構成ファイルに追加します。
<configuration> <property> <name>fs.AbstractFileSystem.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOSS</value> </property> <property> <name>fs.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value> </property> </configuration>すべての Trino ノードで、OSS-HDFS が有効になっているバケットの AccessKey ID と AccessKey Secret を Hadoop core-site.xml 構成ファイルに追加します。
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
OSS-HDFS エンドポイントを構成します。
OSS-HDFS を使用して OSS バケットにアクセスするには、エンドポイントを構成する必要があります。 推奨されるアクセスパスのフォーマットは
oss://{yourBucketName}.{yourBucketEndpoint}/{path}です (例:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt)。 構成が完了すると、JindoSDK はアクセスパス内のエンドポイントを使用して OSS-HDFS API にアクセスします。他の方法を使用して OSS-HDFS エンドポイントを構成することもできます。 異なる方法で構成されたエンドポイントには、異なる優先順位があります。 詳細については、「付録 1: エンドポイントを構成するその他の方法」をご参照ください。
重要上記の設定が完了したら、Trino サービスを再起動して設定を有効にします。
OSS-HDFS のデータをクエリします。
次の例では、一般的な Hive カタログを使用して、Trino を使用して OSS にスキーマを作成し、単純な SQL クエリを実行する方法を示します。 Trino は Hive Metastore に依存するため、Hive サービス用の JindoSDK もインストールしてデプロイする必要があります。 詳細については、「JindoSDK と Hive を使用して OSS-HDFS のデータを処理する」をご参照ください。
Trino コンソールにログオンします。
trino --server <Trino_server_address>:<Trino_server_port> --catalog hiveOSS にスキーマを作成します。
create schema testDB with (location='oss://{yourBucketName}.{yourBucketEndpoint}/{schema_dir}');スキーマを使用します。
use testDB;テーブルを作成します。
create table tbl (key int, val int);テーブルにデータを挿入します。
insert into tbl values (1,666);テーブルをクエリします。
select * from tbl;