全部產品
Search
文件中心

:通過命令列方式串連Trino

更新時間:Jul 01, 2024

建立了包含Trino服務的叢集後,您可以通過命令列方式串連至Trino,從而進行簡單快捷的資料查詢操作。

前提條件

已建立叢集,且在可選服務中選擇了Trino服務。建立叢集的具體操作,請參見建立叢集

資料湖(Datalake)和自訂叢集

說明

如果建立叢集時開啟了Kerberos身份認證開關,則建立的叢集即為高安全叢集,否則將被視為普通叢集。

普通叢集

  1. 通過SSH方式登入叢集,詳情請參見登入叢集

  2. 執行如下命令,串連Trino命令列。

    說明

    EMR-3.44.0及之後版本和EMR-5.10.0版本及之後版本時控制台顯示為Trino。EMR-3.44.0之前版本和EMR-5.10.0版本之前版本時控制台顯示為Presto。

    EMR-3.44.0及之後版本、EMR-5.10.0版本及之後版本

    trino --server master-1-1:9090

    EMR-3.44.0之前版本、EMR-5.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命令列。

高安全叢集

  1. 通過SSH方式登入叢集,詳情請參見登入叢集

  2. 執行如下命令,串連Trino命令列。

    EMR-3.44.0及之後版本、EMR-5.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}

    EMR-3.44.0之前版本、EMR-5.10.0版本之前版本

    說明

    EMR-3.44.0及之後版本和EMR-5.10.0版本及之後版本時控制台顯示為Trino。EMR-3.44.0之前版本和EMR-5.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,可通過hostname -f命令擷取,格式為master-1-1.c-xxxxxxx.cn-xxxxxx.emr.aliyuncs.com

    --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的值,需自行擷取,EMR內部KERBEROS的REALM格式為EMR.C-XXXXXX.COM

    --krb5-remote-service-name

    config.properties中的http-server.authentication.krb5.service-name 的值,固定為trino

  3. 執行如下命令,查看當前Catalog下的Schema。

    show schemas;
  4. 可選: 執行quit;,可以退出Trino命令列。

舊版資料湖叢集(Hadoop)

說明

Hadoop叢集控制台中顯示為Presto。

普通叢集

  1. 通過SSH方式登入叢集,詳情請參見登入叢集

  2. 執行如下命令,串連Presto命令列。

    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. 執行如下命令,查看當前Catalog下的Schema。

    show schemas;
  4. 可選: 執行quit;,可以退出Presto命令列。

高安全叢集

  1. 通過SSH方式登入叢集,詳情請參見登入叢集

  2. 添加Principal並匯出keytab檔案。

    1. 執行如下命令,進入Kerberos的admin工具。

      • EMR-3.30.0及後續版本和EMR-4.5.1及後續版本:

        sh /usr/lib/has-current/bin/admin-local.sh /etc/ecm/has-conf -k /etc/ecm/has-conf/admin.keytab
      • EMR-3.30.0之前版本和EMR-4.5.1之前版本:

        sh /usr/lib/has-current/bin/hadmin-local.sh /etc/ecm/has-conf -k /etc/ecm/has-conf/admin.keytab
    2. 執行如下命令,添加指定key的Principal。

      addprinc -randkey test
      說明

      本文樣本為添加test的Principal。

    3. 執行如下命令,匯出keytab檔案。

      xst -k /home/test.keytab test

      keytab檔案預設匯出至/home/目錄下。

  3. 執行如下命令,進入Presto命令列。

    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檔案的Principal。本文樣本為test。

    <cluster_id>

    需要您在叢集emr-header-1節點上執行hostname | grep -Eo '[0-9]+$'命令擷取。

  4. 執行如下命令,查看當前Catalog下的Schema。

    show schemas;
  5. 可選:執行quit;即可退出Presto命令列。

相關文檔

如果您需要進行複雜的資料查詢、分析和處理操作,或者需要將查詢結果集成到Java應用程式中,則可以使用JDBC的方式串連Trino,詳情請參見通過JDBC方式串連Trino