在开发环境测试flink代码,打包运行发现,并行度为1时可以正常运行,但是提高并行度就会出现Flink LocalTransportException Sending the partition request to ‘null‘ failed的异常。起初以为是内存的限制,但是提高taskManager和jobManager的内存限制还是报错。
之后在网上搜遍了都没找到问题,有一个帖子标题是这个但是收费的。。。在经历无数的搜索与尝试后,在flink github的pull列表里找到了这个问题。原来提示request to ‘null‘ failed这就是一个BUG,已经在新的版本修复了,我测试用的是flink1.13.0,升级到flink1.13.6在执行一遍就能显示正确的异常日志了。
这是bug的原因,已经在后续版本修复,要查问题的话可以先用新版本flink跑一下。
【flink bug说明】https://github.com/apache/flink/pull/15982
用新版flink执行任务后,得到以下日志:

发现居然提示连接不上127.0.0.1,检查机器的hosts,发现本机的hostname映射了127.0.0.1,所以某些原因flink在提高并行度后,其他机器也是拿127.0.0.1去访问该机器的taskManager,那肯定是连接不上的,把/etc/hosts里面的该机器的hostname与127.0.0.1的映射注释掉,然后配置成外网的ip地址,重新执行任务,发现可以正常执行。
本文讲述了在使用Flink 1.13.0时遇到的并行度增大引发的FlinkLocalTransportException,通过查找bug发现是由于本地主机名映射127.0.0.1导致的连接问题。升级到1.13.6版本后解决,关键在于修改hosts文件并调整网络配置。
1676

被折叠的 条评论
为什么被折叠?



