不是Kerberized Kafka代理连接到Kerberized Zookeeper

时间:2017-09-08 10:46:34

标签: apache-kafka cluster-computing apache-zookeeper kerberos ambari

我找不到关于这个问题的任何信息,所以如果有人能帮助我,我会很高兴。

我有一个 Kerberized群集,其中包含 Hbase,MapReduce,HDFS,Zookeeper 等服务......所有这些都是kerberized并且正常工作。

让我们想象一下,我想在群集中添加一些 kafka经纪人,但我想要 Kerberize Kafka ,因为睾丸让我感觉比kerka化kafka的想法更好。

我不知道我是否遗漏了某些东西,某些参数...可能是我......但是,动物园管理员可以告诉他们还必须接受某些节点的PLAINTEXT请愿书,或某些特定的节点目录,例如示例中的kafka:

  

动物园管理员:2181 / 卡夫卡

恢复,问题是:

  • 是否有任何选项可以包含非kerberized Kafka Broker并使其与群集中已经被kerberized的Zookeeper一起工作?

1 个答案:

答案 0 :(得分:2)

如果您需要以下配置:

[zookeeper] <----- SASL ----> [kafka] <----- non-authenticated request ---> [clients]

然后是的,这是可能的。你需要

  1. 为将用于与Zookeeper通信的代理创建主体(使用keytabs)。
  2. 配置Zookeeper ACL,为该用户设置对cdrwa节点的zookeeper:2181/kafka访问权限
  3. 将密钥表复制到代理并配置Kafka jaas文件,如下所示: ZookeeperClient { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab="/path/to/keytab" principal="user@REALM"; };
  4. 然后,在Kafka配置中设置zookeeper.set.acl=true,但不要设置任何authorizer.class.name(这将为Kafka消费者和生产者启用身份验证)