告诉我一个菜鸟。 我已经阅读了有关堆栈溢出的所有问题,并尝试了一天,但解决方案只是不要点击给我。请帮我具体到我的设置和代码(因为我已经尝试了堆栈溢出相同问题的所有可能性 - )
这是我的Producer.properties文件
这是我的server.properties文件
这是我的代码
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.
答案 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端口放在一起并且它有效。