Flink JobManager 和 TaskManager 地址配置的一些问题

2023-03-31

< view all posts

在Flink集群配置的时候,遇到一些和tm、jm地址没有配置正确而导致的一些问题,这里对问题现象和解决方法做一些记录。

一是Flink集群能够启动,但是拉起任务时报错。检查Flink控制台页面,发现taskmamager注册的地址为127.0.0.1,而正常情况下,taskmanager应该以实际ip地址注册到jobmanager。

解决办法:在 flink-conf.yaml 这个配置文件的最后加一行 taskmanager.host: xxx.xxx.xxx.xxx,其中指定taskmanager的实际本机ip。

另一个问题,在taskmanager拉起时出现如下报错:

WARN akka.remote.transport.netty.NettyTransport [] - Remote connection to [null] failed with java.net.ConnectException: Connection refused: taskmanager/xxxx:6123
WARN akka.remote.ReliableDeliverySupervisor [] - Association with remote system [akka.tcp://flink@localhost:6123] has failed, address is now gated for [50] ms. Reason: [Association failed with [akka.tcp://flink@localhost:6123]] Caused by: [java.net.ConnectException: Connection refused: taskmanager/xxxx:6123]
INFO org.apache.flink.runtime.taskexecutor.TaskExecutor [] - Could not resolve ResourceManager address akka.tcp://flink@localhost:6123/user/rpc/resourcemanager_*, retrying in 10000 ms: Could not connect to rpc endpoint under address akka.tcp://flink@localhost:6123/user/rpc/resourcemanager_*.

解决方法:在flink-conf.yaml文件中,配置 jobmanager.rpc.address 为每台机器的实际本机ip即可(不需要配置为集群中实际的jobmanager ip,因为它的含义是当此机器作为jobmanager时,host到的地址)。