安全

Hadoop 凭证管理器

师成师成· 更新于 2026-09-29· 阅读 6 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

为了通过启用了 Kerberos 的 Hadoop 集群的认证,Kyuubi 目前有两种提交引擎的方式:

  1. 使用当前 Kerberos 用户提交,并附加 SparkSubmit 参数 --proxy-user。
  2. 指定 spark.kerberos.principal 和 spark.kerberos.keytab 进行提交。

如果引擎使用 --proxy-user 提交,其获取的 Hadoop 集群服务委托令牌由当前 Kerberos 用户获得,无法自行续期。
因此,引擎的生命周期受限于委托令牌的存活时间。
为了消除这一限制,Kyuubi 在服务端的 Hadoop Credentials Manager 中续期委托令牌。

使用 principal 和 keytab 提交的引擎可以自行续期委托令牌。但出于实现简洁性的考虑,Kyuubi 服务端也会为其续期委托令牌。

配置项

集群服务

Kyuubi 目前支持续期 Hadoop 文件系统和 Hive Metastore 服务的委托令牌。

Hadoop 客户端配置

如果尚未设置 HADOOP_CONF_DIR,请在 $KYUUBI_HOME/conf/kyuubi-env.sh 中进行设置,例如:

$ echo "export HADOOP_CONF_DIR=/path/to/hadoop/conf" >> $KYUUBI_HOME/conf/kyuubi-env.sh

Extra Hadoop filesystems can be specified in $KYUUBI_HOME/conf/kyuubi-defaults.conf by kyuubi.credentials.hadoopfs.uris in comma separated list.

可以在 $KYUUBI_HOME/conf/kyuubi-defaults.conf 中通过 kyuubi.credentials.hadoopfs.uris 以逗号分隔的列表形式指定额外的 Hadoop 文件系统。

Hive metastore 配置

通过 kyuubi-defaults.conf

在 $KYUUBI_HOME/conf/kyuubi-defaults.conf 中指定 Hive metastore 配置。Hadoop Credentials Manager 将在初始化时加载这些配置。

通过 hive-site.xml

将您的 hive-site.xml 副本放置到 $KYUUBI_HOME/conf 中,Kyuubi 将加载该配置文件到其类路径中。

此方式的配置优先级低于 $KYUUBI_HOME/conf/kyuubi-defaults.conf 中的配置。

通过 JDBC 连接 URL

JDBC 连接 URL 中指定的 Hive 配置会被 Hadoop Credentials Manager 忽略,因为 Hadoop Credentials Manager 在 Kyuubi 服务器启动时即被初始化。

凭据续期

Key默认值说明类型引入版本
kyuubi.credentials.hadoopfs.enabledtrue是否续期 Hadoop 文件系统委托令牌boolean1.4.0
kyuubi.credentials.hadoopfs.uris需要请求委托令牌的额外 Hadoop 文件系统 URI。承载 fs.defaultFS 的文件系统无需在此列出。seq1.4.0
kyuubi.credentials.hive.enabledtrue是否续期 Hive metastore 委托令牌boolean1.4.0
kyuubi.credentials.renewal.intervalPT1HKyuubi 续期单个用户委托令牌的频率duration1.4.0
kyuubi.credentials.renewal.retry.waitPT1M获取新凭据失败后,重试前的等待时长。duration1.4.0

必需的安全配置

HDFS 和 Hive 获取委托令牌所需的配置如下:

键含义值
hadoop.security.authentication设置集群的认证方式kerberos
hive.metastore.uris客户端用于访问 metastore 服务器的 URIthrift://{metastoreHost}:{metastorePort}}
hive.metastore.sasl.enabled若为 true,则 metastore 的 Thrift 接口将通过 SASL 进行安全保护。客户端必须使用 Kerberos 进行认证。true
hive.metastore.kerberos.principalmetastore Thrift 服务器的服务主体。特殊字符串 _HOST 会被自动替换为正确的主机名。例如 hive/_HOST@${realm}
hive.metastore.kerberos.keytab.file包含 metastore Thrift 服务器服务主体的 Kerberos Keytab 文件的路径。例如 /etc/security/keytabs/hive.service.keytab

评论

登录后参与评论

正在加载评论…