4

使用以下命令运行控制台使用者时

$ ~/project/libs/kafka_2.9.2-0.8.1.1/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic customerevents --autocommit.interval.ms 100 --group customereventsgroup

我收到以下错误

Exception in thread "main" java.net.UnknownHostException: HQSML-142453: HQSML-142453: nodename nor servname provided, or not known
    at java.net.InetAddress.getLocalHost(InetAddress.java:1473)
    at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:107)
    at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:128)
    at kafka.consumer.Consumer$.create(ConsumerConnector.scala:89)
    at kafka.consumer.ConsoleConsumer$.main(ConsoleConsumer.scala:178)
    at kafka.consumer.ConsoleConsumer.main(ConsoleConsumer.scala)
Caused by: java.net.UnknownHostException: HQSML-142453: nodename nor servname provided, or not known
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293)
    at java.net.InetAddress.getLocalHost(InetAddress.java:1469)
    ... 5 more

现在,此命令在连接到工作网络时工作正常,但在从我的家庭网络运行时却不行。

检查系统的主机名我确实得到了正确的响应

$主机名
HQSML-142453
$

看了一点,我注意到Kafka服务器配置有以下内容

# 代理将向生产者和消费者宣传的主机名。如果未设置,它将使用
“host.name”的 # 值(如果已配置)。否则,它将使用从
#java.net.InetAddress.getCanonicalHostName() 返回的值。
Advertising.host.name=HQSML-142453

我更新以包含我的主机名,但这似乎没有帮助。关于这里可能是什么问题的任何想法。

我知道这是一些相关的网络接口,但不能缩小范围。

配置:优胜美地,osx jdk 7,kafka v0.8.1.1

4

1 回答 1

7

尝试以下操作;

ping HQSML-142453

如果 ping 不起作用,则意味着您没有/etc/hosts在路由器 DNS 中配置主机名。因此,您必须编辑/etc/hosts并将您的HQSML-142453名称映射到运行 kafka 的 IP 地址或将其映射到路由器 DNS 中。

映射必须如下所示/etc/hosts

127.0.0.1  HQSML-142453
于 2015-01-28T03:55:25.510 回答