无法删除cloudera中的默认kafka配置

时间:2018-09-25 11:29:22

标签: apache-kafka cloudera

在提供有kafka(1 broker)的PoC cloudera集群中,我试图通过公共IP与外部生产者将消息发送到集群。我的群集节点托管在Azure中,并且所有这些节点都可以从运行外部生产者的本地计算机访问。

在这篇出色的文章https://rmoff.net/2018/08/02/kafka-listeners-explained/之后,我弄清楚了我需要的kafka侦听器配置,因为只能从本地计算机访问此代理公用IP,并且在群集内部,它们只能使用其内部主机名进行通信:

listeners=INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://internal-broker-node-hostname:19092,EXTERNAL://public-broker-ip:9092
inter.broker.listener.name=INTERNAL

使用这种配置,当我尝试启动代理时,出现此错误:

org.apache.kafka.common.config.ConfigException: Only one of inter.broker.listener.name and security.inter.broker.protocol should be set.

对于此属性inter.broker.listener.name,他们说:就像在卡夫卡文档中所说的那样:

  

用于代理之间的通信的侦听器的名称。如果未设置,则侦听器名称由security.inter.broker.protocol定义。同时设置此属性和security.inter.broker.protocol属性是错误的。

我面临的问题是我无法通过cloudera管理器取消设置security.inter.broker.protocol,因为我只能在单选按钮中切换选项。

enter image description here

如何取消设置该属性?

1 个答案:

答案 0 :(得分:0)

内部和外部只是字符串

因此,您可以为CDH设置PLAINTEXT,而只需将外部监听器重新定义为已发布

listeners=PLAINTEXT://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092
listener.security.protocol.map=EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT 
advertised.listeners=PLAINTEXT://internal-broker-node-hostname:19092,EXTERNAL://public-broker-ip:9092

您还需要确保您的外部代理IP是静态的