配置 Kerberos 认证
本页面介绍如何在 Hive on MR3 中配置 Kerberos 认证。
概述
Kerberos 认证为 Hadoop 集群中的用户和服务提供安全的身份验证。
前置条件
- Kerberos 密钥分发中心(KDC)已运行
- 已创建服务主体和 keytab 文件
配置步骤
1. 准备 Keytab 文件
为 Metastore 和 HiveServer2 创建服务主体:
kadmin.local -q 'addprinc -randkey hive/master@REALM'
kadmin.local -q 'xst -k hive.service.keytab hive/master@REALM'
2. 配置 env.sh
SECURE_MODE=true
HIVE_METASTORE_KERBEROS_PRINCIPAL=hive/_HOST@REALM
HIVE_METASTORE_KERBEROS_KEYTAB=/etc/security/keytabs/hive.service.keytab
HIVE_SERVER2_AUTHENTICATION=KERBEROS
HIVE_SERVER2_KERBEROS_PRINCIPAL=hive/_HOST@REALM
HIVE_SERVER2_KERBEROS_KEYTAB=/etc/security/keytabs/hive.service.keytab
3. 配置 hive-site.xml
<property>
<name>hive.metastore.sasl.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.kerberos.principal</name>
<value>hive/_HOST@REALM</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>KERBEROS</value>
</property>
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>hive/_HOST@REALM</value>
</property>
HDFS 令牌续期
配置 HDFS 令牌续期:
USER_PRINCIPAL=user@REALM
USER_KEYTAB=/path/to/user.keytab
TOKEN_RENEWAL_HDFS_ENABLED=true
验证
启动 Metastore 和 HiveServer2 后,验证 Kerberos 认证:
kinit -k -t user.keytab user@REALM
beeline -u "jdbc:hive2://hiveserver2:9852/;principal=hive/hiveserver2@REALM"