【问题标题】:Kafka console producer Error in Hortonworks HDP 2.3 SandboxHortonworks HDP 2.3 Sandbox 中的 Kafka 控制台生产者错误
【发布时间】:2015-12-08 02:38:21
【问题描述】:

我搜索了一遍,找不到错误。 我检查了This Stackoverflow Issue 但这不是我的问题

  1. 我已经启动了一个zookeeper服务器

启动服务器的命令是

 bin/zookeeper-server-start.sh config/zookeeper.properties
  1. 然后我使用 Putty SSH 到 VM 并使用启动 kafka 服务器

    $ bin/kafka-server-start.sh config/server.properties

  2. 然后我创建了 Kafka 主题,当我列出该主题时,它就会出现。

  3. 然后我打开另一个腻子并启动 kafka-console-producer.sh 并输入任何消息(甚至输入)并得到这个长时间重复的异常。

zookeeper.properties、server.properties、kafka-producer.properties的配置文件如下(分别)

我运行的 Kafka 版本是 8.2.2。正如我在 kafka/libs 文件夹中看到的那样。 P.S. 我在消费者中没有收到任何消息。

任何机构都可以解决这个问题吗? 我关注的教程是[This][9]

8http://%60http://www.bogotobogo.com/Hadoop/BigData_hadoop_Zookeeper_Kafka_single_node_single_broker_cluster.php%60

【问题讨论】:

  • 你确定Kafka服务器已经正常启动了吗?能够获得主题列表并不能证实这一点,因为这是通过 ZK 发生的。如果有任何可疑之处,我会查看服务器日志。
  • 我发现在 Kafka 的 GUI 设置中,kafka 侦听器位于 6667 端口上,而我正在使用 --broker-list localhost:9092。我做了更多的挖掘,发现在 server.properties 文件中它是 9092,所以当我从控制台运行 Kafka 时它运行良好。但是当我从 GUI 运行它时它会崩溃

标签: hadoop apache-kafka hortonworks-data-platform


【解决方案1】:

在 Kafka 内部,生产者和消费者(客户端)和代理(服务器)之间进行着对话。在这些对话中,客户端经常向服务器询问管理特定分区的服务器代理的地址。答案始终是完全限定的主机名。如果您引用的代理的地址不是该代理的完全限定主机名,则无需详细说明,在某些情况下,Kafka 实现会遇到问题。

另一个容易犯的错误,尤其是使用沙盒时,是通过未定义到 DNS 的地址来引用代理。这就是为什么集群上的每个节点都必须能够通过完全限定的主机名来寻址集群中的每个其他节点。这也是为什么当从运行在同一台机器上的另一个虚拟映像访问沙箱时,您必须将 sandbox.hortonworks.com 添加到映像的主机文件中。

【讨论】:

    【解决方案2】:

    在 hortonworks 沙箱上看看服务器配置:

    $ less /etc/kafka/conf/server.properties
    

    就我而言,它说

    ...
    listeners=PLAINTEXT://sandbox.hortonworks.com:6667
    ...
    

    这意味着您必须使用以下命令才能成功连接控制台生产者

    $ 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 ,它将不起作用。另见http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_installing_manually_book/content/configure_kafka.html

    要使用消息,请使用

    $ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
    

    【讨论】:

    • 我在 HDP 3.0.1 上,这节省了我的精力,谢谢,现在我可以从主机 (Windows 10) 上的 Java 客户端读取 Kafka 主题,而 HDP 在 Virtualbox 中运行
    【解决方案3】:

    正如您在问题中提到的那样,您正在使用 HDP 2.3 以及在运行 Console-Producer
    您需要在Broker-list中提供sandbox.hortonworks.com:6667

    请在运行 Console-Consumer 时使用相同的方法。

    如果您仍然遇到任何问题,请告诉我。

    【讨论】:

    • 我在 9092 端口上运行 kafka 代理,我可以使用 ping localhost:9092 ping 它吗?
    • 只需在你的虚拟机上输入命令主机名,你得到的任何主机名都使用它而不是本地主机。
    • 所以我只是设法在内部发送/接收消息(谢谢你)。但是现在我尝试使用 java 从我的主机操作系统发送消息,它会引发相同的错误(该服务器未找到或重试 3 次)。我了解到 server.properties 中的 Advertisement.host.name 属性存在问题。现在我已经更新了服务器。带有文件代码的属性文件。请帮助我如何允许kafka服务器接受来自外部的消息
    • 嗨@Bector你能看看这个link here
    • 试图回答您的问题,请参考相同的链接查看。
    猜你喜欢
    • 1970-01-01
    • 2019-02-17
    • 2017-02-28
    • 2016-06-17
    • 2016-07-19
    • 2021-01-26
    • 1970-01-01
    • 2021-01-09
    • 2019-09-24
    相关资源
    最近更新 更多