我有一个带有HDFS sink connectors个实例的Kafka Connect。他们用Kerberos编写安全的hdfs。尽管连接器工作正常,但我对安全性配置仍有一些疑问。在下面,您可以找到连接器配置的安全性方面:
"hdfs.authentication.kerberos": "true",
"connect.hdfs.principal": "my_custom_user@MY_DOMAIN",
"connect.hdfs.keytab": "/etc/kafka/my_costom_user.keytab",
"hdfs.namenode.principal": "nn/_HOST@MY_DOMAIN",
我根据官方文档编写了配置,但是我不明白为什么我需要指定(全部)connect.hdfs.principal
,connect.hdfs.keytab
和hdfs.namenode.principal
。我知道必须创建票证,但不确定如何发出请求。我猜connect.principal
+ connect.keytab
是用来获取TGT的,但是为什么我需要hdfs.namenode.principal
?
我认为必须先获得hdfs.namenode.principal
才能获得授权令牌,然后再获得委托令牌,但是目前我认为这没有任何意义,因为Kafka Connect集群尚未安装{{1} },因此我了解到如果hdfs.namenode.principal
用于创建TGT,则应该在Hadoop集群中发生。
有人可以阐明这一点吗?