【问题标题】:Unable to generate broker.id when running secure Kafka cluster运行安全 Kafka 集群时无法生成 broker.id
【发布时间】:2016-06-16 09:40:26
【问题描述】:

我正在尝试使用 SASL(通过 Kerberos)身份验证运行 3 台机器的 Kafka 集群。第一个节点启动良好,并创建所有相关的 Zookeeper 节点(/brokers、/consumers 等)。

但是,由于这些 znode 上的身份验证问题,没有其他代理可以成功启动。具体来说,我看到以下异常导致其他代理在启动时失败:

[2016-06-15 22:27:04,365] DEBUG Reading reply sessionid:0x355561ae10f0008, packet:: clientPath:null serverPath:null finished:false header:: 13,5 replyHeader:: 13,4294967436,-102 request:: '/brokers/seqid,,-1 response:: (org.apache.zookeeper.ClientCnxn) [2016-06-15 22:27:04,372] ERROR Failed to generate broker.id due to (kafka.server.KafkaServer) org.I0Itec.zkclient.exception.ZkException: org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /brokers/seqid at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:68) at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:1000) at org.I0Itec.zkclient.ZkClient.writeDataReturnStat(ZkClient.java:1147) at kafka.utils.ZkUtils.getSequenceId(ZkUtils.scala:799) at kafka.utils.ZkUtils.getBrokerSequenceId(ZkUtils.scala:214) at kafka.server.KafkaServer.generateBrokerId(KafkaServer.scala:677) at kafka.server.KafkaServer.getBrokerId(KafkaServer.scala:653) at kafka.server.KafkaServer.startup(KafkaServer.scala:187) at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:37) at kafka.Kafka$.main(Kafka.scala:67) at kafka.Kafka.main(Kafka.scala) Caused by: org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /brokers/seqid at org.apache.zookeeper.KeeperException.create(KeeperException.java:113) at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1270) at org.I0Itec.zkclient.ZkConnection.writeDataReturnStat(ZkConnection.java:138) at org.I0Itec.zkclient.ZkClient$13.call(ZkClient.java:1151) at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:990) ... 9 more

我可以在日志的前面看到这些代理对 kerberos 进行身份验证。

如果我获得/brokers/seqid 的 acl,它只有一个成功运行的 kafka 代理的 cdrwa 权限: getAcl /brokers/seqid 'world,'anyone : r 'sasl,'kafka_stage/running.kafka.node@REALM : cdrwa

我确定我配置了一些错误,但我搜索了很多有相同问题的人,但没有找到。任何帮助将不胜感激。

【问题讨论】:

  • 嗨,汤姆。你解决了这个问题吗?我也有同样的问题。提供的答案似乎并不完整,因为据我了解,您使用了相同的主体和不同的 fqdn。谢谢。

标签: apache-kafka


【解决方案1】:

Welp,原来他们在documentation - It is necessary to have the same principal name across all brokers. 中提到了它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2020-08-14
    • 1970-01-01
    • 2021-10-02
    • 2019-12-11
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多