傳輸中加密為 HiveServer2 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

傳輸中加密為 HiveServer2

從 Amazon 6.9.0, HiveServer2 EMR版開始 (HS2) 會啟用 TLS/ SSL作為傳輸中加密為 HiveServer2安全組態的一部分。這會影響您在啟用傳輸中加密的 Amazon EMR叢集HS2上執行 的方式。若要連線至 HS2,您必須在 中修改 JDBC TRUSTSTORE_PATHTRUSTSTORE_PASSWORD 參數值URL。以下是HS2使用所需參數的 JDBC連線URL範例:

jdbc:hive2://HOST_NAME:10000/default;ssl=true;sslTrustStore=TRUSTSTORE_PATH;trustStorePassword=TRUSTSTORE_PASSWORD

針對以下叢集內或叢集外 HiveServer2 加密使用適當的調整。

On-cluster HS2 access

如果您在SSH存取主要節點之後使用 Beeline 用戶端存取 HiveServer2,則請參閱 /etc/hadoop/conf/ssl-server.xml 以使用組態TRUSTSTORE_PATH和 尋找 ssl.server.truststore.locationTRUSTSTORE_PASSWORD 參數值ssl.server.truststore.password

下列範例命令可以協助您擷取以下組態:

TRUSTSTORE_PATH=$(sed -n '/ssl.server.truststore.location/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}') TRUSTSTORE_PASSWORD=$(sed -n '/ssl.server.truststore.password/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}')
Off-cluster HS2 access

如果您從 Amazon EMR叢集外部的用戶端存取 HiveServer2。您可以使用下列其中一種方法取得 TRUSTSTORE_PATHTRUSTSTORE_PASSWORD

  • 安全組態期間建立PEM的檔案轉換為 JKS 檔案,並在JDBC連線 中使用相同的 URL。例如,對於 openssl 和 keytool,使用下列命令:

    openssl pkcs12 -export -in trustedCertificates.pem -inkey privateKey.pem -out trustedCertificates.p12 -name "certificate" keytool -importkeystore -srckeystore trustedCertificates.p12 -srcstoretype pkcs12 -destkeystore trustedCertificates.jks
  • 或者,參考 /etc/hadoop/conf/ssl-server.xml 以使用組態 ssl.server.truststore.locationssl.server.truststore.password 來尋找 TRUSTSTORE_PATHTRUSTSTORE_PASSWORD 參數值。將信任庫檔案下載至用戶端機器,並使用用戶端機器上的路徑作為 TRUSTSTORE_PATH

    如需從 Amazon EMR叢集外部用戶端存取應用程式的詳細資訊,請參閱使用 Hive JDBC驅動程式