文档

通过命令行方式访问Presto

更新时间:

创建了包含Presto服务的集群后,您可以通过命令行方式连接至Presto,从而进行简单快捷的数据查询操作。

前提条件

已创建EMR-3.45.0及后续版本和EMR-5.11.0及后续版本,且选择了Presto服务的集群,详情请参见创建集群

普通集群

说明

如果创建集群时未打开Kerberos身份认证开关,则创建的集群即为普通集群。

  1. 通过SSH方式登录集群,详情请参见登录集群

  2. 执行以下命令,进入Presto命令行。

    presto --server master-1-1:8889
  3. 执行以下命令,查看表数据。

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

    命令中的参数说明如下:

    • <catalog>:待连接的数据源的名称。

      您可以通过show catalogs;命令查看所有的Catalog;或者在EMR控制台Presto服务的配置页签,查看所有的Catalog。

    • <schema>:待查询的数据库的名称。

    • <table>:待查询的数据表。

      例如,如果要查看Hive数据源中默认数据库中的test表的数据,您可以使用select * from hive.default.test;命令。

  4. 可选: 执行quit;,可以退出Presto命令行。

高安全集群

说明

如果创建集群时打开了Kerberos身份认证开关,则创建的集群即为高安全集群。

  1. 通过SSH方式登录集群,详情请参见登录集群

  2. 执行以下命令,进入Presto命令行。

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

    开启高安全后只能通过HTTPS协议访问Presto,HTTP端口8889会被关闭,UI将无法以原先的方式访问,设置的http-server.http.port也会被http-server.https.port覆盖,HTTPS端口值为7779。

    参数

    说明

    ${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/presto-conf/keystore

    --keystore-password

    config.properties中http-server.https.keystore.key的值,即${pwd},需自行获取,也可以在master-1-1节点上执行命令awk -F= '/http-server.https.keystore.key/{print $2}' ${PRESTO_CONF_DIR}/config.properties获取。

    --krb5-keytab-path

    config.properties中http-server.authentication.krb5.keytab的值,固定为/etc/emr/presto-conf/presto.keytab

    ${REALM}

    Kerberos的REALM值,需自行获取。与Trino不同,Presto的REALM不在配置文件中,需要在/etc/krb5.conf里查看。EMR内部Kerberos的REALM格式为EMR.C-XXXXXX.COM

    --krb5-remote-service-name

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

  3. 执行以下命令,查看表数据。

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

    命令中的参数说明如下:

    • <catalog>:待连接的数据源的名称。

      您可以通过show catalogs;命令查看所有的Catalog;或者在EMR控制台Presto服务的配置页签,查看所有的Catalog。

    • <schema>:待查询的数据库的名称。

    • <table>:待查询的数据表。

      例如,如果要查看Hive数据源中默认数据库中的test表的数据,您可以使用select * from hive.default.test;命令。

  4. 可选: 执行quit;,可以退出Presto命令行。

相关文档

如果您需要进行复杂的数据查询、分析和处理操作,或者需要将查询结果集成到Java应用程序中,则可以使用JDBC的方式连接Presto,详情请参见使用JDBC