Использование записей в блоге на Apache и Hortonworks Мне удалось переправить из NiFi в Spark, когда оба находятся на одной машине. Теперь я пытаюсь передать из NiFi один экземпляр EC2 в кластер EMR в той же подсети и группе безопасности, и у меня возникают проблемы. Специфическая ошибка сообщается на машине ОГО СердечникаNiFi Streaming to Spark на EMR
Failed to receive data from NiFi
java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:454)
at sun.nio.ch.Net.connect(Net.java:446)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648)
at java.nio.channels.SocketChannel.open(SocketChannel.java:189)
at org.apache.nifi.remote.client.socket.EndpointConnectionPool.establishSiteToSiteConnection(EndpointConnectionPool.java:708)
at org.apache.nifi.remote.client.socket.EndpointConnectionPool.establishSiteToSiteConnection(EndpointConnectionPool.java:682)
at org.apache.nifi.remote.client.socket.EndpointConnectionPool.getEndpointConnection(EndpointConnectionPool.java:300)
at org.apache.nifi.remote.client.socket.SocketClient.createTransaction(SocketClient.java:129)
at org.apache.nifi.spark.NiFiReceiver$ReceiveRunnable.run(NiFiReceiver.java:149)
Использование netstat
на основной машине, я вижу в нем есть открытое соединение TCP к коробке Nifi на порт сайта к площадке (в моем случае 8090). На NiFi-машине в файле nifi-app.log я вижу журналы из «Работы по работе с сайтом-участником» о моем основном подключении к машине (и ничего о каких-либо ошибках). Таким образом, первоначальное соединение кажется успешным, но немного после этого.
Когда я запускал свой код искры локально, я был на экземпляре NiFi EC2, поэтому я знаю, что в целом он работает. Я просто нахожу что-то, возможно, связанную с безопасностью, когда клиент является кластером EMR.
В качестве работы я могу отправить файл на S3, а затем запустить Spark-шаг из NiFi (используя скрипт Python), но я бы скорее потоком данных (и использование Kafka не является вариантом). Кто-нибудь еще получил поток от NiFi до EMR?
Это сообщение похоже: Getting data from Nifi to spark streaming Разница заключается в том, что у меня отключена безопасность, и я использую http, а не https (и я получаю соединение отказано, а не 401).
Edit:
nifi.properties:
# Site to Site properties
nifi.remote.input.host=
nifi.remote.input.secure=false
nifi.remote.input.socket.host=
nifi.remote.input.socket.port=8090
nifi.remote.input.http.enabled=true
nifi.remote.input.http.transaction.ttl=30 sec
Итак, чтобы подтвердить, в nifi.properties вы установили nifi.remote.input.socket.port на 8090? и вы установили значение для nifi.remote.input.host? –
Да и нет. Я отредактировал сообщение с сайтом в разделе сайта файла свойств. – Zik
Возможно, вы захотите попробовать установить nifi.remote.input.host на имя хоста экземпляра EC2 (был ли NiFi запущен), который был бы разрешен EMR. Клиент сайта-сайта в коде искрообразования будет использовать URL-адрес API-интерфейса NiFi REST, чтобы спросить NiFi, где подключиться к сайту-сайту, а NiFi собирается вернуть хост и порт с сайта свойства объекта. –