跳到主要内容

配置 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"