NiFi Cluster на AWS с использованием ECS и внешнего Zookeeper - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь настроить кластер NiFi на AWS, используя ECS с External Zookeeper.

Создан кластер ECS для Zookeeper с 3 экземплярами EC2 и работающим ансамблем zookeeper.Этот внешний Zookeeper работает нормально, как я тестировал с моим SolrCloud, а также на моем местном NiFi.Локальный кластер NiFi был настроен на основе https://www.nifi.rocks/apache-nifi-docker-compose-cluster
Теперь, когда я убедился, что кластер NiFi хорошо работает с моим внешним зоопарком, работающим на AWS, я создал еще один кластер ECS с 2 экземплярами EC2 для NiFi.Я удостоверился, что все переменные установлены правильно для кластера NiFi.Все проверки из списка переменных env, приведенного в https://github.com/apache/nifi/tree/master/nifi-docker/dockerhub

Хотя NiFi запускается на обоих экземплярах EC2 и использует мой внешний zookeeper, эти 2 NiFi работают как два отдельных кластера с одним узлом с каждымкластер.В идеале я хочу, чтобы они работали как 2 узла в одном кластере.

Я сравнил свойства nifi.properties из локального кластера NiFi и кластеров AWS, и все они выглядят хорошо.

Я пропустил какой-то очевидный шаг здесь?

Исключение составляет

WARN [main] o.a.nifi.controller.StandardFlowService Failed to connect to cluster due to: org.apache.nifi.cluster.protocol.ProtocolException: Failed to create socket to due to: java.net.UnknownHostException

Attempted to determine the node's information but failed to retrieve its information due to org.apache.nifi.cluster.protocol.ProtocolException: Failed to create socket due to: java.net.UnknownHostException

1 Ответ

0 голосов
/ 22 февраля 2019
WARN [main] o.a.nifi.controller.StandardFlowService Failed to connect to cluster due to: org.apache.nifi.cluster.protocol.ProtocolException: Failed to create socket to due to: java.net.UnknownHostException

Attempted to determine the node's information but failed to retrieve its information due to org.apache.nifi.cluster.protocol.ProtocolException: Failed to create socket due to: java.net.UnknownHostException

Таким образом, я использовал «По умолчанию» для «Режим сети» в моем ECS «Определение задачи».Режим сети по умолчанию - «мост».Следовательно, зоопарк регистрировал имя контейнера докера как имя хоста, которое не было разрешено должным образом, и, следовательно, исключение «java.net.UnknownHostException».В основном он искал хост, имя которого является именем контейнера и, в конечном итоге, UnknownhostException.

Исправлено было использование сетевого режима в качестве «хоста», в котором в качестве имени хоста будет использоваться фактическое имя хоста экземпляра EC2, а не имя контейнера.Это решило мою проблему.

...