2017-03-03 70 views
0

我有一个连接到nifi来拉取数据的flink工程。在本地运行时,获取数据流的设置工作得很好。Apache Flink在集群上抛出UnknownHostException

.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

您正在使用哪种版本的NiFi? – James

回答

0

我觉得这个问题。我在不同的地区拥有我的nifi集群和我的flink集群。将flink集群移至同一区域,并使用公共或专用网址作为集群,并且工作正常。