You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flink 1.6.1提交YARN任务失败:原因排查与解决咨询

报错原因解析

这个Job submission failed异常的核心原因很直白:Flink在YARN模式运行时,无法找到Hadoop和YARN的核心配置文件。当你要和YARN集群、HDFS交互时,Flink必须读取core-site.xmlyarn-site.xml这类配置文件来获取集群地址、资源规则等关键信息,但系统没找到这些文件的存放路径,所以才会抛出未设置HADOOP_CONF_DIRYARN_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:永久配置(所有终端会话自动生效)

如果不想每次启动终端都手动设置环境变量,可以把配置写入用户的全局配置文件:

  1. 打开用户主目录下的.bashrc(Linux系统)或.bash_profile(Mac系统):
vi ~/.bashrc
  1. 在文件末尾添加以下内容,替换为你的Hadoop配置路径:
export HADOOP_CONF_DIR=/path/to/your/hadoop/etc/hadoop
# YARN配置目录与Hadoop配置目录一致,无需单独指定
export YARN_CONF_DIR=$HADOOP_CONF_DIR
  1. 保存退出后,执行命令让配置立即生效:
source ~/.bashrc

之后每次新开终端,环境变量都会自动加载,直接执行Flink命令即可。

额外验证步骤

设置完成后,可以执行echo $HADOOP_CONF_DIR确认路径是否正确,同时检查该路径下是否存在core-site.xmlyarn-site.xml这些关键配置文件,确保Flink能正常读取它们。

内容的提问来源于stack exchange,提问作者Z.Lun

火山引擎 最新活动