开发者社区> 问答> 正文

无法使用Flink-nifi连接器从Nifi输出端口读取数据

"我在具有暴露端口的虚拟机上的docker中有一个Nifi实例:8080和10000.在瘦实例上,我创建了一个带有输出端口名为“flink”的简单管道,我想使用flink-nifi连接器读取这些数据:

SiteToSiteClientConfig clientConfig = new SiteToSiteClient.Builder()

            .url(""http://vm-address:8080/nifi"")
            .portName(""flink"")
            .requestBatchCount(100)
            .buildConfig();
    DataStream<NiFiDataPacket> nifi = environment.addSource(new NiFiSource(clientConfig));

    nifi.map(new MapFunction<NiFiDataPacket, JsonNode>() {
        @Override
        public JsonNode map(NiFiDataPacket value) throws Exception {
            return DataConverter.byte2Json(value.getContent());
        }
    }).print();

在这种情况下我得到错误: Exception in thread ""main"" org.apache.flink.runtime.client.JobExecutionException: java.net.UnknownHostException 如果我在配置中添加localAddress:

SiteToSiteClientConfig clientConfig = new SiteToSiteClient.Builder()

            .url(""http://vm-address:8080/nifi"")
            .localAddress(InetAddress.getByName(""vm-address""))
            .portName(""flink"")
            .requestBatchCount(100)
            .buildConfig();

我收到了这个错误: Exception in thread ""main"" org.apache.flink.runtime.client.JobExecutionException: java.net.BindException: Cannot assign requested address: JVM_Bind

我从Windows上的本地PC运行此代码,flink以独立模式启动。此外,我试图直接在虚拟机上运行它,但我得到了同样的错误。

在日志中有很多重试:

execchain.RetryExec:处理/ vm-address请求时捕获的I / O异常(java.net.BindException) - > {} - > http:// vm-address:8080:无法分配请求的地址:JVM_Bind
"

展开
收起
flink小助手 2018-11-28 16:25:43 3502 0
1 条回答
写回答
取消 提交回答
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    问题出在你的docker配置中。这样运行nifi: docker run --name nifi -p 8008:8080 -p 10000:10000 -d apache/nifi:1.7.1 默认情况下,网络是bridge。在这种情况下,你的容器有一些随机主机名,不直接与容器通信,而是通过docker。当选择network = host时: docker run --name nifi --network host -d apache/nifi:1.7.1一切顺利。也许,可以用另一种方式解决它(也许,显式解析容器主机名),但这是最简单的方法

    2019-07-17 23:16:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载