HiveServer2 中的传输中加密
从 Amazon EMR 发行版 6.9.0 开始,HiveServer2(HS2)作为 HiveServer2 中的传输中加密 安全配置的一部分,已启用 TLS/SSL。这会影响与在启用传输中加密的 Amazon EMR 集群上运行的 HS2 建立连接的方式。要连接到 HS2,须修改 JDBC URL 中的 TRUSTSTORE_PATH
和 TRUSTSTORE_PASSWORD
参数值。以下 URL 是带有所需参数的 HS2 的 JDBC 连接示例:
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
以使用配置 ssl.server.truststore.location
和 ssl.server.truststore.password
来查找 TRUSTSTORE_PATH
和 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_PATH
和 TRUSTSTORE_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.location
和 ssl.server.truststore.password
来查找 TRUSTSTORE_PATH
和 TRUSTSTORE_PASSWORD
参数值。将信任存储库文件下载到客户端计算机,并使用客户端计算机上的路径作为 TRUSTSTORE_PATH
。
有关从 Amazon EMR 集群外部的客户端访问应用程序的更多信息,请参阅使用 Hive JDBC 驱动程序。