WedX - журнал о программировании и компьютерных науках

Проблема с подключением кафки извне

Я использую песочницу hortonwork для сервера kafka, пытаясь подключить kafka из eclipse с кодом java. Используйте эту конфигурацию для подключения к производителю для отправки сообщения

metadata.broker.list=sandbox.hortonworks.com:45000
serializer.class=kafka.serializer.DefaultEncoder
zk.connect=sandbox.hortonworks.com:2181
request.required.acks=0
producer.type=sync

где sandbox.hortonworks.com — имя песочницы, к которой я подключаюсь

в kafka server.properties я изменил эту конфигурацию

host.name=sandbox.hortonworks.com

advertised.host.name=System IP(on which my eclipse is running)
advertised.port=45000

сделал также переадресацию портов,

Я могу подключиться к серверу kafka из eclipse, но при отправке сообщения получаю исключение Исключение «Не удалось отправить сообщения после 3 попыток».


  • ads.host.name должно быть общедоступным именем хоста или общедоступным IP-адресом самого сервера, на котором работает Kafka, а не именем хоста вашего клиента, на котором запущено eclipse, кроме того, вы можете закомментировать host.name, чтобы связать сервер со всеми интерфейсами. 21.03.2015
  • если моя kafka работает на Unix-боксе, это виртуальная машина, а на моем рабочем столе размещены как виртуальная машина, так и Eclipse. Тогда Advertising.host.name может быть IP-адресом рабочего стола или нет, пожалуйста, подтвердите 22.03.2015
  • Вы можете установить имя хоста в своем виртуальном ящике, используя команду hostname XXXXX. после этого вы можете изменить файл hosts на рабочем столе, чтобы он указывал на XXXXX. У меня не было возможности протестировать это в виртуальной коробке, но я думаю, что это будет иметь смысл. 28.03.2015

Ответы:


1

Сначала убедитесь, что вы настроили сеть только для хоста для виртуальной машины Hortonworks Sandbox, как описано здесь:

https://hortonworks.com/community/forums/topic/use-host-only-networking-for-the-virtual-machine/

После этого ваша виртуальная машина в песочнице должна получить IP-адрес (например, 192.168.56.101), и она должна быть доступна с вашего хоста через SSH, например

$ ssh [email protected]

Затем откройте Ambari по адресу https://192.168.56.101:8080/ и измените конфигурацию Kafka на

listeners=PLAINTEXT://0.0.0.0:6667
advertised.listeners=PLAINTEXT://192.168.56.101:6667 

Последнее свойство необходимо добавить в раздел "Пользовательский кафка-брокер" (см. также https://hortonworks.com/community/forums/topic/ambari-alerts-how-to-change-kafka-port/).

Затем запустите/перезапустите Kafka через Ambari. Теперь у вас должна быть возможность доступа к Kafka из-за пределов виртуальной машины Hortonworks Sandbox. Вы можете проверить это (извне виртуальной машины песочницы), используя, например. производитель консоли Kafka из дистрибутива Kafka, например

$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
$ bin/kafka-console-producer.sh --topic test --broker-list 192.168.56.101:6667
25.09.2015
  • чтобы дополнить этот ответ, добавив ссылку на мой пост в блоге boristyukin.com /connecting-to-kafka-on-virtualbox-from-windows 22.10.2018

  • 2

    После почти недели настройки конфигурации я, наконец, заработал. Аналогично ответу asmaier, но если вы используете облачный сервер, как я: Azure Sandbox-hdp, попробуйте опубликовать/подписаться через удаленного потребителя/производителя.

    В лазурном:

    первый SSH в вашу лазурь в Ambari Web-UI localhost:8080, добавьте

    listeners=PLAINTEXT://0.0.0.0:6667
    advertised.listeners=PLAINTEXT://127.0.0.1:6667
    

    в терминале @root настройте переадресацию портов докеров, как на странице инструкций hortonworks песочнице

    vi start_scripts/start_sandbox.sh
    

    добавить порт 6667 в список

    На вашем ПК:

    первый SSH в вашу лазурь плюс туннелирование 6667.

    затем напишите в cmd: или запустите собственный скрипт java/c#

    kafka\bin\windows>kafka-console-producer --broker-list localhost:9092 --topic test
    

    Единственное, что меня сейчас беспокоит, это то, что я не могу найти способ отправлять сообщения kafka напрямую на реальный общедоступный IP-адрес/Azure. Кажется, что трафик данных через брокера может работать только внутри докера.

    23.06.2018
  • это не сработает, я проверял, службы Kafka как в версии Docker HDP, так и в Virtualbox HDP не будут подключаться с хост-машины (Windows 10), в моем случае все порты открыты. Я могу получить список тем в среде IDE, подключившись к службе zookeeper в HDP, но не к Kafka. Я проверил, что могу подключить службу Kafka, работающую в Docker для Windows (версия Confluence), красиво и гладко. Что касается HDP, я считаю добавлены ads.listeners и IP-адрес хоста в конфигурацию Kafka в Ambari, службы перезапущены, но по-прежнему не удается подключиться, настройки вручную в Unix будут сброшены настройками в Ambari. 07.07.2020
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]