2017-03-03 103 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集羣移至同一區域,並使用公共或專用網址作爲集羣,並且工作正常。