使用python的CentOS流示例上的Hadoop - / mapred / local / taskTracker上的权限被拒绝

时间:2013-03-07 16:18:19

标签: hadoop hadoop-streaming

我已经能够使用python mapper& amp设置流媒体示例了。减速器。 mapred文件夹位置是/ mapred / local / taskTracker 根和& mapred用户拥有此文件夹的所有权&子文件夹

然而,当我运行我的流媒体时,它会创建地图,但不会减少,并会出现以下错误 无法运行程序 /mapred/local/taskTracker/root/jobcache/job_201303071607_0035/attempt_201303071607_0035_m_000001_3/work/./mapper1.py 权限被拒绝

我注意到虽然它已经为mapred / local / taskTracker及其所有子目录提供了+ rwx权限,但是当mapreduce为这个作业创建临时文件夹时,文件夹没有所有用户的rwx ......因此我得到了许可被拒绝的错误

我一直在寻找论坛上的线程,虽然有线程提到同样的错误......我找不到任何解决方案的答案。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我假设你以用户root运行你的Hadoop守护进程。在这种情况下,新创建的文件的权限由用户umask的{​​{1}}确定。但是,您不得更改root的{​​{1}}。

如果您希望将MapReduce作业和群集作为不同用户运行,最好以用户umask启动Hadoop守护程序,并以用户root启动MapReduce作业。但是,两个用户都应属于同一组,即hadoop。此外,应相应地设置用户mapreduce的{​​{1}}。