首页 > 解决方案 > Beam jar 无法在远程 flink 集群上运行

问题描述

使用 beam 2.6 和 Flink 1.5.3 运行测试。梁运行本地 flink runner 没有问题。但无法在 flink 集群上运行。尝试 mvn 和 flink 提交作业。当使用 mvn 运行时,我使用了:

mvn clean package -Pflink-runner exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Dexec.args="--runner=FlinkRunner --flinkMaster=c2:6123 --filesToStage=target/word-count-beam-bundled-0.1.jar"

这导致请求 blob 服务器端口上的问题阻塞,并且无法继续

2018 年 9 月 21 日上午 11:47:38 org.apache.zookeeper.ClientCnxn$SendThread logStartConnect 信息:打开与服务器 192.168.0.12/192.168.0.12:2181 的套接字连接。不会尝试使用 SASL 进行身份验证(未知错误)2018 年 9 月 21 日上午 11:47:38 org.apache.zookeeper.ClientCnxn$SendThread primeConnection 信息:已建立到 192.168.0.12/192.168.0.12:2181 的套接字连接,正在启动会话 Sep 2018 年 2 月 21 日上午 11:47:38 org.apache.zookeeper.ClientCnxn$SendThread onConnected INFO:服务器 192.168.0.12/192.168.0.12:2181 上的会话建立完成,sessionid = 0x165adfcdcd9104b,协商超时 = 90000 2018-09-21 11 :47:38 INFO ConnectionManager$HConnectionImplementation:2155 - 关闭主协议:MasterService 2018-09-21 11:47:38 INFO ConnectionManager$HConnectionImplementation:1712 - 关闭 zookeeper sessionid=0x165adfcdcd9104b Sep 21, 2018 年上午 11:47:38 org.apache.zookeeper.ClientCnxn$EventThread 运行信息:EventThread 关闭 2018 年 9 月 21 日上午 11:47:38 org.apache.zookeeper.ZooKeeper 关闭信息:会话:0x165adfcdcd9104b 于 2018 年 9 月 21 日关闭上午 11:47:39 org.apache.flink.client.program.rest.RestClusterClient submitJob INFO:提交作业 aa366f2bd4bff3ddab47c1a890c84256(分离:假)。2018 年 9 月 21 日上午 11:47:39 org.apache.flink.client.program.rest.RestClusterClient submitJob 信息: 请求 blob 服务器端口

当使用 flink 直接提交作业时,使用:

$FLINK_HOME/bin/flink run -c org.apache.beam.examples.WordCount target/test-beam-bundled-0.1.jar --runner=FlinkRunner --flinkMaster=c2:6123  --filesToStage=target/word-count-beam-bundled-0.1.jar

它抛出以下异常:

该程序完成,但出现以下异常:

在预定义的上下文(例如命令行客户端、Scala Shell 或 TestEnvironment)中运行时,无法实例化 RemoteEnvironment org.apache.flink.api.java.RemoteEnvironment.(RemoteEnvironment.java:126) org.apache.flink .api.java.RemoteEnvironment.(RemoteEnvironment.java:86) org.apache.flink.api.java.ExecutionEnvironment.createRemoteEnvironment(ExecutionEnvironment.java:1168) org.apache.beam.runners.flink.FlinkExecutionEnvironment.createBatchExecutionEnvironment(FlinkExecutionEnvironments. java:58) org.apache.beam.runners.flink.FlinkPipelineExecutionEnvironment.translate(FlinkPipelineExecutionEnvironment.java:93) org.apache.beam.runners.flink.FlinkRunner.run(FlinkRunner.java:110) org.apache.beam。 sdk.Pipeline.run(Pipeline.java:313) org.apache.beam.sdk.Pipeline.run(Pipeline.java:299)

任何想法?

标签: apache-flinkapache-beam

解决方案


我发现这是梁版本问题。Beam java sdk 仅适用于 Flink 1.5.1。Flink 1.5.2+ 有一个变化,就是 Blob 上传方式发生了变化。Beam 无法通过 Flink blob rest api 加载 jar。


推荐阅读