当我们通过docker在standalone下启动flink job时,按照示例(Docker | Apache Flink)能够正确启动。
但我们将配置项中的jobmanager.rpc.address换成自定义的jobmanager_xxx时,jobmanger和taskmanager启动永远报错:
org.apache.flink.runtime.jobmaster.JobMaster [] - Could not resolve ResourceManager address akka.tcp
尝试进入容器内部,ping & telnet均正常连接相关的tcp地址,无法理解。
尝试去除下划线,正常运行。原来问题在于当定义的地址中存在下划线时,内部处理异常,导致无法解析实际可以连接的tcp对端地址。
同时,为了保证container间的连通性,需要保证jobmanager & taskmanager处于同一network中,将jobmanager的container name配置为与jobmanager.rpc.address一样,保证taskmanager能够寻找到resource manager。
具体原因待细究。