すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:CLI を使用して Trino に接続する

最終更新日:Jan 11, 2025

Trino サービスを含むクラスターを作成した後、CLI を使用して Trino に接続し、簡単かつ迅速にデータをクエリできます。

前提条件

Trino サービスを含む E-MapReduce(EMR)クラスターが作成されていること。クラスターの作成方法の詳細については、「クラスターの作成」をご参照ください。

制限事項

クラスターに対して Ranger 認証と Kerberos 認証を同時に有効にすることはできません。

DataLake クラスターとカスタムクラスター

説明

クラスターの作成時に [kerberos 認証] を有効にすると、クラスターは高セキュリティクラスターになります。有効にしない場合、クラスターは共通クラスターになります。

共通クラスター

  1. SSH モードでクラスターにログオンします。詳細については、「クラスターへのログオン」をご参照ください。

  2. 次のコマンドを実行して Trino CLI に接続します。

    説明

    クラスターが EMR V3.44.0 以降のマイナーバージョン、または EMR V5.10.0 以降のマイナーバージョンの場合、サービス名は Trino です。クラスターが EMR V3.44.0 または EMR V5.10.0 より前のマイナーバージョンの場合、サービス名は Presto です。

    EMR V3.44.0、EMR V5.10.0、または EMR V3.44.0 もしくは EMR V5.10.0 以降のマイナーバージョン

    trino --server master-1-1:9090

    EMR V3.44.0 または EMR V5.10.0 より前のマイナーバージョン

    presto --server master-1-1:9090
  3. 次のステートメントを実行してテーブルデータを表示します。

    select * from <catalog>.<schema>.<table>;

    上記のステートメントのパラメーター:

    • <catalog>:接続するデータソースの名前を指定します。

    • <schema>:使用するデータベースの名前を指定します。

    • <table> は、データのクエリ元のテーブルの名前を指定します。

      たとえば、Hive のデフォルトデータベースの test テーブルからデータをクエリする場合、select * from hive.default.test; ステートメントを実行できます。

  4. オプション。quit; コマンドを実行して Trino CLI を終了します。

高セキュリティクラスター

  1. SSH モードでクラスターにログオンします。詳細については、「クラスターへのログオン」をご参照ください。

  2. 次のコマンドを実行して Trino CLI に接続します。

    EMR V3.44.0、EMR V5.10.0、または EMR V3.44.0 もしくは EMR V5.10.0 以降のマイナーバージョン

    trino --server https://${FQDN}:7778 \
           --krb5-config-path /etc/krb5.conf \
           --keystore-path /etc/emr/trino-conf/keystore \
           --keystore-password ${pwd} \
           --krb5-keytab-path /etc/emr/trino-conf/trino.keytab \
           --krb5-principal trino/${FQDN}@${REALM} \
           --krb5-remote-service-name trino \
           --user trino/${FQDN}
           --catalog ${CATALOG}

    EMR V3.44.0 または EMR V5.10.0 より前のマイナーバージョン

    説明

    クラスターが EMR V3.44.0 以降のマイナーバージョン、または EMR V5.10.0 以降のマイナーバージョンの場合、サービス名は Trino です。クラスターが EMR V3.44.0 または EMR V5.10.0 より前のマイナーバージョンの場合、サービス名は Presto です。

    presto --server https://${FQDN}:7778 \
           --krb5-config-path /etc/krb5.conf \
           --keystore-path /etc/emr/trino-conf/keystore \
           --keystore-password ${pwd} \
           --krb5-keytab-path /etc/emr/trino-conf/trino.keytab \
           --krb5-principal trino/${FQDN}@${REALM} \
           --krb5-remote-service-name trino \
           --user trino/${FQDN}

    パラメーター

    説明

    ${FQDN}

    master-1-1 ノードの完全修飾ドメイン名(FQDN)。FQDN は、master-1-1.c-xxxxxxx.cn-xxxxxx.emr.aliyuncs.com 形式である必要があります。hostname -f コマンドを実行して FQDN を取得できます。

    --krb5-config-path

    config.properties ファイルの http.authentication.krb5.config パラメーターの値。値は /etc/krb5.conf に固定されています。

    --keystore-path

    config.properties ファイルの http-server.https.keystore.path パラメーターの値。値は /etc/emr/trino-conf/keystore に固定されています。

    --keystore-password

    config.properties ファイルの http-server.https.keystore.key パラメーターの値。この例では、値は ${pwd} です。master-1-1 ノードで awk -F= '/http-server.https.keystore.key/{print $2}' ${TRINO_CONF_DIR}/config.properties コマンドを実行して値を取得できます。

    --krb5-keytab-path

    config.properties ファイルの http-server.authentication.krb5.keytab パラメーターの値。値は /etc/emr/trino-conf/trino.keytab に固定されています。

    ${REALM}

    config.properties ファイルの http-server.authentication.krb5.user-mapping.pattern パラメーターの値。値は自分で取得する必要があります。Kerberos レルムは EMR.C-XXXXXX.COM 形式です。

    --krb5-remote-service-name

    config.properties ファイルの http-server.authentication.krb5.service-name パラメーターの値。値は trino に固定されています。

    ${CATALOG}

    接続するデータソースの名前。たとえば、--catalog hive は Hive データソースを示します。

  3. 次のコマンドを実行して、既存のカタログに含まれるスキーマを表示します。

    show schemas;
  4. オプション。quit; コマンドを実行して Trino CLI を終了します。

Hadoop クラスター

説明

Hadoop クラスターの場合、サービス名は Presto です。

共通クラスター

  1. SSH モードでクラスターにログオンします。詳細については、「クラスターへのログオン」をご参照ください。

  2. 次のコマンドを実行して Presto CLI に接続します。

    presto --server emr-header-1:9090 --catalog hive --schema default --user hadoop

    上記のコマンドのパラメーター:

    • --server emr-header-1:9090:Presto サービスのアドレスとポート番号を指定します。

    • --catalog hive:接続するデータソースの名前を指定します。この例では、Hive が使用されています。他のデータソースに接続する場合は、ビジネス要件に基づいてこのパラメーターを変更できます。

    • --schema default:使用するデータベースまたはスキーマの名前を指定します。この例では、デフォルトデータベースが使用されています。ビジネス要件に基づいてこのパラメーターを変更できます。

    • --user hadoop:認証用のユーザー名を指定します。

  3. 次のコマンドを実行して、既存のカタログに含まれるスキーマを表示します。

    show schemas;
  4. オプション。quit; コマンドを実行して Presto CLI を終了します。

高セキュリティクラスター

  1. SSH モードでクラスターにログオンします。詳細については、「クラスターへのログオン」をご参照ください。

  2. プリンシパルを追加し、keytab ファイルをエクスポートします。

    1. 次のコマンドを実行して Kerberos 管理ツールを有効にします。

      • EMR V3.30.0、EMR V4.5.1、または EMR V3.30.0 もしくは EMR V4.5.1 以降のマイナーバージョン

        sh /usr/lib/has-current/bin/admin-local.sh /etc/ecm/has-conf -k /etc/ecm/has-conf/admin.keytab
      • EMR V3.30.0 または EMR V4.5.1 より前のマイナーバージョン

        sh /usr/lib/has-current/bin/hadmin-local.sh /etc/ecm/has-conf -k /etc/ecm/has-conf/admin.keytab
    2. 次のコマンドを実行して、特定のキーのプリンシパルを追加します。

      addprinc -randkey test
      説明

      この例では、test のプリンシパルが追加されます。

    3. 次のコマンドを実行して keytab ファイルをエクスポートします。

      xst -k /home/test.keytab test

      デフォルトでは、keytab ファイルは /home/ ディレクトリにエクスポートされます。

  3. 次のコマンドを実行して Presto CLI を開きます。

    presto --server https://<hostname>:7778 \
           --catalog hive \
           --schema default \
           --keystore-path /etc/ecm/presto-conf/keystore \
           --keystore-password <passwd> \
           --krb5-keytab-path <keytab_file> \
           --krb5-principal <username>@EMR.<cluster_id>.COM \
           --krb5-remote-service-name presto \
           --user <username>

    パラメーター

    説明

    <hostname>

    ホスト名。emr-header-1 ノードで hostname コマンドを実行して値を取得できます。値は emr-header-1.cluster-xxx 形式です。

    <passwd>

    パスワード。emr-header-1 ノードで sed -n 's/http-server.https.keystore.key=\([^;]*\)/\1/p' /etc/ecm/presto-conf/config.properties コマンドを実行して値を取得できます。

    <keytab_file>

    エクスポートされた keytab ファイルのパス。この例では、パスは /home/test.keytab です。

    <username>

    作成された keytab ファイルのプリンシパル。この例では、プリンシパルは test です。

    <cluster_id>

    クラスター ID。emr-header-1 ノードで hostname | grep -Eo '[0-9]+$' コマンドを実行して値を取得できます。

  4. 次のコマンドを実行して、既存のカタログに含まれるスキーマを表示します。

    show schemas;
  5. オプション。quit; コマンドを実行して Presto CLI を終了します。

参照

JDBC を使用して Trino に接続し、複雑なデータのクエリ、分析、処理、またはクエリ結果を Java アプリケーションに統合できます。詳細については、「JDBC の使用」をご参照ください。