我有一个连接到nifi以提取数据的flink项目。拉动获取数据流的设置在本地运行时工作正常。
.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)
我能找到UnknownHostException的唯一原因是因为主机名的IP无法解析,但我已经提供了IP。之前有一个问题是它无法连接到nifi,因为我必须设置允许哪些IP访问nifi实例。所以我在允许的情况下添加了AWS服务器并修复了它,但显然我现在已经有了这个。
非常感谢任何帮助!
答案 0 :(得分:0)
我想出了问题。我的nifi集群和我的flink集群在不同的地区。将flink群集移动到同一个区域,并使用群集的公共或私有URL,它可以正常工作。