Доступ к kafka в песочнице из Host OS (после попытки каждого решения)
Обсуди меня нуб. Я прочитал все вопросы о переполнении стека и пытался в течение одного дня, но решение просто не щелкнуло мне. ПОЖАЛУЙСТА, Помогите мне конкретно к моим НАСТРОЙКАМ и КОДУ (потому что я перепробовал все возможности из тех же проблем переполнения стека -)
Это мой файл 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.
2 ответа
@Samhash, насколько я понимаю, advertised.host.name должен быть IP-адресом, который можно проверить на вашем локальном компьютере. На вашем локальном компьютере, я не думаю, что sandbox.hortonworks.com будет понят, или вам, возможно, придется сделать запись для этого хоста на вашем локальном компьютере.
Пожалуйста, дайте мне знать, если это работает для вас.
Ну в стратегии Hit and Trail я наконец-то поймал проблему.
Есть 4 свойства в файле file.propertiesпорт, host.name, объявленное имя хоста и объявленный порт
И 1 свойство в файле Producer.propertiesmetadata.broker.list
Убедитесь, что broker.list совпадает с advertised.host.name:advertised.port
Прокомментируйте свойство host.name, так как оно не действует, если указано объявленное имя хоста.
Я просто получил ip своей песочницы используя ifconfig
команда, а затем положить этот IP с портом 9092 в обоих свойствах, и это сработало.