次のコマンドを使用してコンソール コンシューマを実行する場合
$ ~/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()から返された値を使用します。
広告された.host.name=HQSML-142453
ホスト名を含めるように更新しましたが、それは役に立たなかったようです。ここで何が問題になる可能性があるかについてのアイデア。
これはネットワーク インターフェイスに関連していることはわかっていますが、それを特定することはできません。
構成: ヨセミテ、osx jdk 7、kafka v0.8.1.1