Flink提交运行中常见问题总结
一、问题1
1.问题描述:
提交jar到Flink集群时候出现:
java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.fs.viewfs.ViewFileSystem could not be instantiated
可能原因解释:
出现该问题,往往是由于没有争取读取到hadoop中配置信息,
解决方法:
在执行./flink run -c cc.tt.mainClass ./root/myFlinkJar.jar 时候主动初始化hadoop环境
HADOOP_HOME=/hadoop/hadoop-2.7.2
HADOOP_CONF_DIR=/hadoop/hadoop-2.7.2/etc/hadoop/
FLINK_HOME=/home/flink-1.4.2
同时建议使用Flink提供的官方flink-hadoop依赖包,自身提供的hadoop的jar包坑不全
在maven中pom.xml中加入如下依赖
使用不同的flink官方包:如果要做checkpoint功能,需要此时需要配置
<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop2 -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-shaded-hadoop2</artifactId>
<version>1.4.2</version>
</dependency>
ps:其他的maven中的依赖项,见我的另外一篇博客:
https://blog.csdn.net/fct2001140269/article/details/84864151
二、问题描述.
提交执行Flink的jar包时候,出现错误[Flink JobExecutionException: akka.client.timeout]
问题分析:
表面来看就是你的工程没有在规定的时间内(Flink集群默认配置中是60s),可能是你的工程项目比较大,jobManager进程难以在规定的短时间内完成Flink的逻辑topology图的构建,或者难以在规定的时间内,完成各个算子(例如:richMapFunction())的初始化等工作;
解决办法:
建议在集群中配置如下选型:增加job作业提交允许的构建和初始化读取资源的时间。
-akka.client.timeout:600s
-akka.ask.timeout:600s
重新提交jar包到集群中,等待一段时间可以在web-ui上查看到任务提交情况。(如果失败,可能还有其他原因导致到异常!)
(后续逐渐跟踪提交遇到的异常问题,持续更新…)