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()から返された値を使用します。
広告された.host.name=HQSML-142453

ホスト名を含めるように更新しましたが、それは役に立たなかったようです。ここで何が問題になる可能性があるかについてのアイデア。

これはネットワーク インターフェイスに関連していることはわかっていますが、それを特定することはできません。

構成: ヨセミテ、osx jdk 7、kafka v0.8.1.1

4

1 に答える 1

7

以下を試してください。

走る

ping HQSML-142453

/etc/hostsping が機能しない場合は、ルーターの DNS でホスト名が構成されていないことを意味します。そのため、 を編集して/etc/hosts自分のHQSML-142453名前を kafka が実行されている IP アドレスにマップするか、ルーターの DNS にマップする必要があります。

のマッピングは次のようになっている必要があります/etc/hosts

127.0.0.1  HQSML-142453
于 2015-01-28T03:55:25.510 に答える