Apache Flink 在集群上抛出 UnknownHostException
Apache Flink throws UnknownHostException on cluster
我有一个 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)
我能找到 UnknownHostException 的唯一原因是因为无法解析主机名的 IP,但我已经提供了 IP。之前有一个问题是无法连接到 nifi,因为我必须设置允许哪些 IP 访问 nifi 实例。所以我按允许添加了 AWS 服务器并修复了这个问题,但显然我现在有了这个。
非常感谢任何帮助!
我想通了。我在不同的地区有我的 nifi 集群和我的 flink 集群。将 flink 集群移动到同一区域,并为集群使用 public 或私有 url,它工作正常。
我有一个 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)
我能找到 UnknownHostException 的唯一原因是因为无法解析主机名的 IP,但我已经提供了 IP。之前有一个问题是无法连接到 nifi,因为我必须设置允许哪些 IP 访问 nifi 实例。所以我按允许添加了 AWS 服务器并修复了这个问题,但显然我现在有了这个。
非常感谢任何帮助!
我想通了。我在不同的地区有我的 nifi 集群和我的 flink 集群。将 flink 集群移动到同一区域,并为集群使用 public 或私有 url,它工作正常。