Java编写的Beam作业在可移植Flink Runner上运行报错排查
报错原因
核心问题是jobEndpoint启动参数格式错误,传入的地址携带了http://协议前缀。
Beam 可移植Runner和Flink Job Server之间基于gRPC协议通信,gRPC客户端初始化时默认仅识别dns、static等内置的地址scheme,不支持直接传入http/https这类通用HTTP协议前缀。传入带http前缀的地址时,gRPC会尝试匹配对应协议的NameResolver实现,匹配不到就会抛出cannot find a NameResolver的异常。
你当前用--net=host模式启动的Job Server默认会在宿主机8099端口监听提交请求,网络连通性本身没有问题,仅参数格式不符合要求。
解决方案
- 调整作业启动参数,删除
jobEndpoint值中的http://前缀,使用纯IP:端口格式传入,修正后的参数如下:
--runner=PortableRunner --jobEndpoint=192.168.63.100:8099
- 若修改参数后出现连接超时类报错,可优先检查两点:一是宿主机8099端口的防火墙规则是否允许作业提交端的访问请求,二是Job Server启动日志中是否存在8099端口绑定失败的记录。
内容的提问来源于stack exchange,提问作者Siddhanta Rath
相关产品推荐
相关产品推荐

