Flink 1.6.1提交YARN任务失败:原因排查与解决咨询
解决Flink YARN模式下Job提交失败的问题
报错原因解析
这个Job submission failed异常的核心原因很直白:Flink在YARN模式运行时,无法找到Hadoop和YARN的核心配置文件。当你要和YARN集群、HDFS交互时,Flink必须读取core-site.xml、yarn-site.xml这类配置文件来获取集群地址、资源规则等关键信息,但系统没找到这些文件的存放路径,所以才会抛出未设置HADOOP_CONF_DIR或YARN_CONF_DIR的提示。
具体解决办法
给你两种实用的解决方案,按需选择即可:
方法1:临时配置(仅当前终端会话有效)
在执行Flink的YARN会话启动和任务提交命令前,先在终端手动设置环境变量,指定Hadoop配置目录的实际路径:
# 替换为你本地Hadoop的配置目录,比如/opt/hadoop-2.7.5/etc/hadoop export HADOOP_CONF_DIR=/path/to/your/hadoop/etc/hadoop
设置完成后,再正常执行你的命令:
bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 -d ./bin/flink run ./examples/batch/WordCount.jar -input hdfs://CS-201:9000/LICENSE -output hdfs://CS-201:9000/wordcount-result.txt
方法2:永久配置(所有终端会话自动生效)
如果不想每次启动终端都手动设置环境变量,可以把配置写入用户的全局配置文件:
- 打开用户主目录下的
.bashrc(Linux系统)或.bash_profile(Mac系统):
vi ~/.bashrc
- 在文件末尾添加以下内容,替换为你的Hadoop配置路径:
export HADOOP_CONF_DIR=/path/to/your/hadoop/etc/hadoop # YARN配置目录与Hadoop配置目录一致,无需单独指定 export YARN_CONF_DIR=$HADOOP_CONF_DIR
- 保存退出后,执行命令让配置立即生效:
source ~/.bashrc
之后每次新开终端,环境变量都会自动加载,直接执行Flink命令即可。
额外验证步骤
设置完成后,可以执行echo $HADOOP_CONF_DIR确认路径是否正确,同时检查该路径下是否存在core-site.xml、yarn-site.xml这些关键配置文件,确保Flink能正常读取它们。
内容的提问来源于stack exchange,提问作者Z.Lun




