创建了包含Presto服务的集群后,您可以通过命令行方式连接至Presto,从而进行简单快捷的数据查询操作。
前提条件
已创建EMR-3.45.0及后续版本和EMR-5.11.0及后续版本,且选择了Presto服务的集群,详情请参见创建集群。
普通集群
如果创建集群时未打开Kerberos身份认证开关,则创建的集群即为普通集群。
通过SSH方式登录集群,详情请参见登录集群。
执行以下命令,进入Presto命令行。
presto --server master-1-1:8889
执行以下命令,查看表数据。
select * from <catalog>.<schema>.<table>;
命令中的参数说明如下:
<catalog>
:待连接的数据源的名称。您可以通过
show catalogs;
命令查看所有的Catalog;或者在EMR控制台Presto服务的配置页签,查看所有的Catalog。<schema>
:待查询的数据库的名称。<table>
:待查询的数据表。例如,如果要查看Hive数据源中默认数据库中的
test
表的数据,您可以使用select * from hive.default.test;
命令。
可选: 执行
quit;
,可以退出Presto命令行。
高安全集群
如果创建集群时打开了Kerberos身份认证开关,则创建的集群即为高安全集群。
通过SSH方式登录集群,详情请参见登录集群。
执行以下命令,进入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
。执行以下命令,查看表数据。
select * from <catalog>.<schema>.<table>;
命令中的参数说明如下:
<catalog>
:待连接的数据源的名称。您可以通过
show catalogs;
命令查看所有的Catalog;或者在EMR控制台Presto服务的配置页签,查看所有的Catalog。<schema>
:待查询的数据库的名称。<table>
:待查询的数据表。例如,如果要查看Hive数据源中默认数据库中的
test
表的数据,您可以使用select * from hive.default.test;
命令。
可选: 执行
quit;
,可以退出Presto命令行。
相关文档
如果您需要进行复杂的数据查询、分析和处理操作,或者需要将查询结果集成到Java应用程序中,则可以使用JDBC的方式连接Presto,详情请参见使用JDBC。