跳到主要内容

配置 SSL 加密

本页面介绍如何在 Hive on MR3 中配置 SSL 加密。

概述

SSL(安全套接字层)加密用于保护客户端与 HiveServer2 之间传输的数据安全。

前置条件

  • 已创建 SSL 证书(参见创建 SSL 证书和密钥)
  • 已准备 keystore 和 truststore

Shell Scripts 配置方式

更新 hive-site.xml

<property>
<name>hive.server2.thrift.ssl</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.ssl.keystore.path</name>
<value>/path/to/keystore.jks</value>
</property>
<property>
<name>hive.server2.thrift.ssl.keystore.password</name>
<value>keystore_password</value>
</property>
<property>
<name>hive.server2.thrift.ssl.keystore.type</name>
<value>JKS</value>
</property>

在 Pod 中挂载密钥

更新 yaml/hive.yaml:

volumeMounts:
- name: ssl-certs
mountPath: /path/to/certs
volumes:
- name: ssl-certs
secret:
secretName: ssl-secrets

Helm 配置方式

更新 values-hive.yaml:

hive:
ssl:
enabled: true
keystore:
secretName: ssl-secrets
file: keystore.jks
passwordSecretKey: keystore-password
truststore:
secretName: ssl-secrets
file: truststore.jks
passwordSecretKey: truststore-password

使用 SSL 连接

Beeline with SSL

beeline -u "jdbc:hive2://hiveserver2:9852/;ssl=true;sslTrustStore=/path/to/truststore.jks;trustStorePassword=password"

JDBC URL with SSL

jdbc:hive2://hiveserver2:9852/;ssl=true;sslTrustStore=/path/to/truststore.jks;trustStorePassword=password

验证

  1. 使用 SSL 连接到 HiveServer2
  2. 查看 HiveServer2 日志确认连接使用 SSL
  3. 使用 Wireshark 等工具确认流量已加密