记一次因为虚拟机的KVM虚拟网卡# virbr0导致Flink集群连接不上taskmanager的问题。
问题描述
在家需要跑一个flink的demo,本想直接快速启动一个Flink集群,就用VMWare装了个Centos7的虚拟机,然后下载了一个Flink,最后将该虚拟机克隆了3个。
一个jobmanager+taskmanager,该了flink-conf.yaml和master、work本以为很快就好了,然后发现启动弄死连接不上taskmanager,查看日志(log目录下),发现一直抛异常连接不上一个地址192.168.122.1:34562。但是这个地址我没有在flink里面做过配置,我实际虚拟机的ip地址也不是这个,因此一直抛异常:
2023-02-10 05:13:59,072 WARN akka.remote.ReliableDeliverySupervisor [] - Association with remote system [akka.tcp://flink@192.168.1.152:43897] has failed, address is now gated for [50] ms. Reason: [Association failed with [akka.tcp://flink@192.168.1.152:43897]] Caused by: [java.net.ConnectException: 拒绝连接: /192.168.122.1:34562]
因为对这个地址完全没影响,并且我确定自己没有在任何配置文件中配过,而且现在我也还没有提交job,因此我怀疑是不是lib下有其它组件,一通排查也没找到线索。
最后隔天要连接虚拟机的时候,再查看自己虚拟机ip的时候,发现下面还有个网卡ip,virbr0。虽然我在flink中masters和workers配置的是我ens33网卡实际我使用的虚拟机ip,但是不知道为什么flink在搜索的时候缺失搜索的虚拟网卡virbr0的地址。
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
inet 192.168.122.1/24 brd 192.168.120.255 scope global virbr0
valid_lft forever preferred_lft forever
解决办法:
-
手动关闭virbr0网卡:ifconfig virbr0 down
-
关闭virbr0自启动:systemctl disable libvirtd.service
-
重启虚拟机,再依次启动jobmanager和taskmanager,成功连接上实际配置的ip地址。