当卡夫卡和工人在不同的机器上时,火花流Kafka无法正常工作

时间:2017-08-23 06:27:29

标签: apache-spark spark-streaming

我有一个简单的Spark流媒体应用程序,可以与kafka一起使用(在我的机器上部署,就像在发行版附带的基本配置中一样)。当我在我的机器上使用我的主人和工作人员在独立服务器上运行我的sparkstreaming应用程序,因此与kafka相同的机器一切都很好。

然而,一旦我决定添加另一个节点/工作人员,或者我只是在我的第二台机器上启动工作人员(Kafka不在哪里),就不会再发生任何事情了。 Streaming选项卡消失。但我没有看到驱动程序的stderr或ui中的worker的任何错误。

没有错误我只是不知道在哪里看。该应用程序不起作用。

如果有人遇到过类似的事情,请你分享一些建议吗?

我使用本地网络正确的机器IP地址

1 个答案:

答案 0 :(得分:1)

导致此行为的可能问题是Kafka广告主机的配置错误。

默认情况下,Kafka经纪人使用java.net.InetAddress.getCanonicalHostName()来宣传自己。可能无法从运行Spark worker的节点访问返回的地址。

为了解决问题,您应该将每个Kafka代理上的通告地址设置为可以从所有节点访问。

相关的Kafka代理配置选项包括:

  • Kafka 0.9:advertised.host.name
  • Kafka 0.10:advertised.listeners(后退于advertised.host.name

有关这些配置参数的更多详细信息,请参阅版本0.90.10的Kafka文档