从主机操作系统访问沙盒中的kafka(尝试每个解决方案后)

时间:2015-09-16 07:19:51

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

告诉我一个菜鸟。 我已经阅读了有关堆栈溢出的所有问题,并尝试了一天,但解决方案只是不要点击给我。请帮我具体到我的设置和代码(因为我已经尝试了堆栈溢出相同问题的所有可能性 - )

这是我的Producer.properties文件

enter image description here

这是我的server.properties文件

enter image description here

这是我的代码

Properties props = new Properties();
props.put("metadata.broker.list", "sandbox.hortonworks.com:9093");
//props.put("zk.connect", "sandbox.hortonworks.com:2181");
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("request.required.acks", "1");

KeyedMessage<String, String> data = new KeyedMessage<String, String> (topic1,"ccccccccc");


System.out.println(data);
producer.send(data);

这是日食输出

KeyedMessage(tweeter,null,ccccccccc)
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.

2 个答案:

答案 0 :(得分:0)

@Samhash ,根据我的理解 advertised.host.name 应该是可从本地计算机ping的IP地址。对于您的本地计算机,我不这么认为 sandbox.hortonworks.com ,或者您可能需要在本地计算机上为此主机创建一个条目。
如果它适合你,请告诉我。

答案 1 :(得分:0)

在Hit and Trail策略中,我终于抓住了问题。

server.properties文件中有4个属性 端口 host.name 广告主机名广告端口

Producer.properties文件中的1个属性 metadata.broker.list

确保broker.list与advertised.host.name:advertised.port

相同

注释host.name属性,因为它不起作用如果给出了通告的主机名。

我只是使用ifconfig命令获取了我的沙盒的ip,然后在两个属性中将该IP与9092端口放在一起并且它有效。