HiveServer2 中的传输中加密 - Amazon EMR

HiveServer2 中的传输中加密

从 Amazon EMR 发行版 6.9.0 开始,HiveServer2(HS2)作为 HiveServer2 中的传输中加密 安全配置的一部分,已启用 TLS/SSL。这会影响与在启用传输中加密的 Amazon EMR 集群上运行的 HS2 建立连接的方式。要连接到 HS2,须修改 JDBC URL 中的 TRUSTSTORE_PATHTRUSTSTORE_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.locationssl.server.truststore.password 来查找 TRUSTSTORE_PATHTRUSTSTORE_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 驱动程序