UnknownHostException kafka

8

Ich versuche einen Kafka-Cluster einzurichten (eigentlich der erste Knoten im Cluster).

Ich habe ein Cluster-Setup für einen einzelnen Knoten. Ich richte Kafka auf einem separaten Knoten ein.

Beide laufen CentOS 6.4, laufen IPV6, was ein bisschen wie ein PITA ist. Ich habe überprüft, dass die Maschinen mit netcat miteinander kommunizieren können.

Wenn ich kafka starte, erhalte ich die folgende Ausnahme (die bewirkt, dass kafka heruntergefahren wird). EDIT: Ich habe Kafka gestartet, ich musste die Eigenschaft host.name in der Datei server.config einstellen.

Ich konnte ein Testthema erstellen und Nachrichten vom kafka-Server senden.

Ich bekomme jedoch den gleichen Fehler, wenn ich versuche, die Nachrichten zu konsumieren.

Irgendwelche Hilfe, Vorschläge?

bin/kafka-console-consumer.sh --zookeeper zk1:2181 --topic test --from-beginning Exception in thread "main" java.net.UnknownHostException: kafka: kafka: Name or service 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: kafka: Name or service not known at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress.lookupAllHostAddr(InetAddress.java:901) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293) at java.net.InetAddress.getLocalHost(InetAddress.java:1469) ... 5 more

    
noplay 26.08.2014, 02:52
quelle

2 Antworten

13

Wenn Sie den Befehl > bin/kafka-console-consumer.sh ausführen, lädt kafka eine ConsoleConsumer , die versucht, einen Verbraucher mit einer automatisch generierten Verbraucher-ID zu erstellen. Die Art und Weise, wie Kafka die Consumer-ID generiert, besteht darin, den Namen des lokalen Hosts mit ihm zu verknüpfen. Also, in dem Problem war die Tatsache, dass Java konnte nicht die IP-Adresse für den lokalen Host auf dem Open Stack VM ich arbeite mit.

Die Antwort war also, dass die Open Stack-VM den lokalen Hostnamen in kafka auflöst, was der Name der VM ist. Ich hatte alles in den Kafka- und Zookeeper-Instanzen als kafka1 eingerichtet.

Also, als Java getLocalHost aufruft, versucht es, die IP-Adresse für kafka zu finden, die ich nicht in meiner / etc / hosts-Datei hatte.

Ich habe einfach einen Eintrag für kafka in meine / etc / hosts Datei eingefügt und alles hat wunderbar funktioniert !!!

Ich hätte gedacht, dass es in localhost aufgelöst werden würde, aber es wurde nicht auf den Namen der VM aufgelöst, kafka .

    
noplay 26.08.2014, 17:04
quelle
0

Als Noplay darauf hinwies, dass Kafka nicht in der Lage war, die richtige IP zu beheben, kann dies beispielsweise auf Ihren EC2-Instanzen in privaten Subnetzen ohne Zuweisung öffentlicher IP-Adressen passieren. Die Lösung fasste zusammen:

%Vor%

Was zeigt Ihnen den Host-Namen, so etwas wie ip-10-180-128-217. Dann aktualisiere einfach deine / etc / hosts

%Vor%

edit, z.B.

%Vor%     
Peter Koncz 10.01.2018 09:34
quelle