Hadoop:设置 MapReduce 资源权限

Posted

技术标签:

【中文标题】Hadoop:设置 MapReduce 资源权限【英文标题】:Hadoop: setting MapReduce resource permissions 【发布时间】:2016-01-25 13:23:10 【问题描述】:

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

一个问题是:应该赋予该资源文件哪些权限?

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

Marco,在我们的例子中,出于安全原因,不可能将这些文件放入 HDFS。它们应该从集群节点中读取。 您是否尝试使用 chown 将该文件夹的所有者更改为 yarn 并执行 chmod 644 ?【参考方案2】:

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

【讨论】:

以上是关于Hadoop:设置 MapReduce 资源权限的主要内容,如果未能解决你的问题,请参考以下文章

hadoop中HDFS的NameNode原理

Hadoop集群搭建

大数据之Hadoop(MapReduce):资源调度器

hadoop之MapReduce---Yarn资源调度器

hadoop MapReduce 读取配置参数

Hadoop整理四(Hadoop分布式计算框架MapReduce)