Hadoop:设置MapReduce资源权限

时间:2016-01-25 13:23:10

标签: unix hadoop mapreduce yarn user-permissions

鉴于我们要运行一些Hadoop MapReduce任务。此MapReduce需要访问本地驱动器上的某些系统资源,即在某个节点上(事实上,我们必须将该资源放置到所有节点)。

问题是:应该为该资源文件授予哪些权限?

我想授予运行Hadoop的用户读取的权限。但实际上该任务将在另一个用户下执行。该用户是' yarn'。即如果我想将一些资源放在运行Hadoop Job的用户的某个主文件夹,或相关的Oozie作业等我不能这样做,因为实际上拥有MapReduce的用户的主文件夹是/ home / yarn /。

处理此问题的最佳方法是什么? 如何控制运行MapReduce的用户? 我在哪里可以查找该设置?

2 个答案:

答案 0 :(得分:0)

我想你只需要在HDFS中为这些资源创建所需的文件夹,并使用'hadoop fs -chmod ..'命令设置这些文件夹和包含文件的权限。

请参考以下链接: https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html

答案 1 :(得分:0)

首先是声明" MapReduce需要访问本地驱动器上的一些系统资源"在分布式模式下运行MapReduce程序时,不可能。无论你需要什么文件都应该移到HDFS 。给所有用户一个读取权限,我希望一切都好。如果您需要在Mapper或Reducer中读取文件而不将该文件作为MapReduce程序的输入传递,那么请考虑使用我的MapReduce提供的分布式缓存机制。