Hadoop Hortonworks HDP 2.3沙盒中的Kafka控制台生成器错误
我找遍了,找不到错误。 我已经检查过了,但这不是我的问题Hadoop Hortonworks HDP 2.3沙盒中的Kafka控制台生成器错误,hadoop,apache-kafka,hortonworks-data-platform,Hadoop,Apache Kafka,Hortonworks Data Platform,我找遍了,找不到错误。 我已经检查过了,但这不是我的问题 我已经启动了zookeeper服务器 启动服务器的命令无效 bin/zookeeper-server-start.sh config/zookeeper.properties 然后,我使用Putty将SSH连接到VM中,并使用 $bin/kafka-server-start.sh config/server.properties 然后我创建了卡夫卡主题,当我列出主题时,它就会出现。 然后,我打开另一个putty,启动kafka-c
bin/zookeeper-server-start.sh config/zookeeper.properties
正如您在问题中提到的,您正在使用HDP 2.3,并且在运行Console Producer时使用HDP 2.3 您需要在经纪人列表中提供sandbox.hortonworks.com:6667 请在运行Console Consumer时使用相同的工具
如果您仍然面临任何问题,请告诉我。在hortonworks沙箱上查看服务器配置:
$ less /etc/kafka/conf/server.properties
就我而言,它说
...
listeners=PLAINTEXT://sandbox.hortonworks.com:6667
...
这意味着您必须使用以下命令才能成功连接到console producer
$ cd /usr/hdp/current/kafka-broker
$ bin/kafka-console-producer.sh --topic test --broker-list sandbox.hortonworks.com:6667
如果您使用--broker list 127.0.0.1:6667
或--broker list localhost:6667
,它将不起作用。另见
要使用消息,请使用
$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
在卡夫卡内部,生产者和消费者(客户端)以及代理(服务器)之间都有一个对话。在这些对话中,客户机经常要求服务器提供管理特定分区的服务器代理的地址。答案总是一个完全限定的主机名。如果您引用的代理的地址不是该代理的完全限定主机名,那么在某些情况下,Kafka实现会遇到麻烦
另一个很容易犯的错误,特别是在沙箱中,是通过DNS未定义的地址引用代理。这就是为什么集群上的每个节点都必须能够通过完全限定的主机名寻址集群中的每个其他节点。这也是为什么从同一台机器上运行的另一个虚拟映像访问沙盒时,必须将sandbox.hortonworks.com添加到映像的主机文件中。您确定Kafka服务器已正确启动吗?能够获得主题列表并不能证实这一点,因为这是通过ZK实现的。如果有任何可疑之处,我会查看服务器日志。我发现在Kafka的GUI设置中,Kafka侦听器位于6667端口,我使用的是--broker list localhost:9092。我做了更多的挖掘,发现在server.properties文件中是9092,所以当我从控制台运行Kafka时,它运行得很好。但是,当我从GUI运行它时,我会在端口9092上运行kafka broker侦听,我可以使用ping localhost:9092对其进行ping吗?只需在vm上键入命令主机名,以及您获得的任何主机名,而不是使用localhost。因此,我只是设法在内部发送/接收消息(感谢您)。但现在我尝试使用java从主机操作系统发送消息,它会抛出相同的错误(服务器未找到或重试3次)。我了解到它与server.properties中的Advertised.host.name属性有关。现在我已经更新了服务器。带有leates代码的属性文件。请帮助我如何允许kafka服务器接受来自外部的消息Hi@Bector你能看看这个吗试图回答你的问题,请参考相同的链接查看。我在HDP 3.0.1上,这救了我的命,谢谢,现在我可以在主机(Windows 10)上从Java客户端阅读kafka主题,而HDP在Virtualbox中运行