UnknownHostException kafka

nop*_*lay 10 apache-kafka apache-zookeeper

我正在尝试设置Kafka集群(实际上是集群中的第一个节点).

我有一个单节点zookeeper群集设置.我在一个单独的节点上设置kafka.

两者都运行CentOS 6.4,运行IPV6,这是一个PITA.我验证了这些机器可以使用netcat相互通信.

当我启动kafka时,我收到以下异常(导致kafka关闭).编辑:我开始kafka,我不得不host.name在server.config文件中设置属性.

我能够创建一个测试主题并从kafka服务器发送消息.

但是,尝试使用消息时出现相同的错误.

任何帮助,建议?

host.name

nop*_*lay 15

当您运行> bin/kafka-console-consumer.sh命令kafka加载a时ConsoleConsumer,它将尝试创建具有自动生成的使用者ID的使用者.Kafka生成使用者ID的方法是将本地主机的名称连接到它.因此,问题在于java无法解析我正在使用的Open Stack VM上的本地主机的IP地址.

所以答案是Open Stack VM正在解析本地主机名kafka,这是VM的名称.我在Kafka和Zookeeper实例中设置了所有内容kafka1.

所以,当Java是调用的getLocalHost,它试图找到一个IP地址kafka,我也没有在我的/ etc/hosts文件有.

我只是kafka在我的/ etc/hosts文件中添加了一个条目,一切都开始工作了!

我本以为它会解决localhost,但它没有,它解决了vm的名称,kafka.


Pet*_*ncz 5

正如 noplay 指出的问题是 Kafka 无法解析正确的 IP,例如,这可能发生在您在私有子网中运行的 EC2 实例上,而没有分配公共 IP。解决方案总结如下:

hostname
Run Code Online (Sandbox Code Playgroud)

这将显示主机名,例如 ip-10-180-128-217。然后只需更新您的 /etc/hosts

sudo nano /etc/hosts
Run Code Online (Sandbox Code Playgroud)

编辑,例如

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ip-10-180-128-217
Run Code Online (Sandbox Code Playgroud)