我有一个flink项目正在连接到nifi来获取数据。在本地运行时,获取数据流的设置工作正常。
.url("http://1.2.3.4:8080/nifi")
.portName("MyPortName")
.requestBatchCount(5)
.buildConfig();
但当我将.jar添加到远程集群并运行作业时,它会抛出以下内容:
java.net.UnknownHostException
at sun.nio.ch.Net.translateException(Net.java:177)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:127)
at org.apache.nifi.remote.client.socket.EndpointConnectionPool.establishSiteToSiteConnection(EndpointConnectionPool.java:712)
at org.apache.nifi.remote.client.socket.EndpointConnectionPool.establishSiteToSiteConnection(EndpointConnectionPool.java:685)
at org.apache.nifi.remote.client.socket.EndpointConnectionPool.getEndpointConnection(EndpointConnectionPool.java:301)
at org.apache.nifi.remote.client.socket.SocketClient.createTransaction(SocketClient.java:129)
at org.apache.flink.streaming.connectors.nifi.NiFiSource.run(NiFiSource.java:90)
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:78)
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:55)
at org.apache.flink.streaming.runtime.tasks.SourceStreamTask.run(SourceStreamTask.java:56)
at org.apache.flink.streaming.runtime.tasks.StoppableSourceStreamTask.run(StoppableSourceStreamTask.java:39)
at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:272)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:655)
at java.lang.Thread.run(Thread.java:745)
我能找到一个未知hostexception的唯一原因是因为无法解析主机名的ip,但我已经给出了ip。之前有一个问题,它无法连接到nifi,因为我必须设置允许哪个ip访问nifi示例。所以我在允许的情况下添加了aws服务器,它解决了这个问题,但显然我现在有了这个。
非常感谢您的帮助!
1条答案
按热度按时间kx1ctssn1#
我发现了问题所在。我的nifi星团和flink星团分布在不同的区域。将flink集群移动到同一个区域,并使用集群的公共或私有url,它可以正常工作。