我试图在MR2上运行mapreduce作业,Hadoop ver。 2.6.0-cdh5.8.0。 Job具有目录的相对路径,该目录具有基于某些标准压缩的大量文件(对于该问题不是真正必需的)。我的工作如下:
sudo -u my_user hadoop jar my_jar.jar com.example.Main
在路径/ user / my_user /下有文件的HDFS上有一个文件夹。但是当我开始工作时,我遇到了以下异常:
java.io.FileNotFoundException: File /user/yarn/<path_from_job> does not exist.
我从MR1迁移此作业,此作业正常运行。我的建议是由于YARN而发生这种情况,因为每个容器都是在YARN用户下启动的。在我的工作配置中,我尝试设置mapreduce.job.user.name="my_user"
,但这没有任何帮助。
我在工作配置中找到${user.home}
用法,但我不知道它在哪里设置,是否可以更改此设置。
我到目前为止找到的唯一解决方案是提供文件夹的绝对路径。还有其他方法,因为我觉得这不是正确的做法。
谢谢