建立了包含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方式訪問Presto。