相同的hadoop设置为不同的用户

时间:2014-05-11 15:08:09

标签: hadoop

我已使用我的用户名安装并设置了hadoop的单个节点实例。我想为不同的用户设置相同的hadoop设置。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

在hadoop中,我们运行不同的任务并将数据存储在HDFS中。 如果多个用户使用相同的用户帐户执行任务,则很难跟踪作业并跟踪每个用户完成的任务/缺陷。 另一个问题是安全问题。 如果所有用户都拥有相同的用户帐户,则所有用户都将拥有相同的权限,所有用户都可以访问每个人的数据,可以修改,执行,也可以删除。 这是一个非常严重的问题。 为此,我们需要创建多个用户帐户。 创建多个用户的好处

1)用户无法修改其他用户的目录/文件。 2)其他用户无法将新文件添加到用户的目录中。 3)其他用户不能对用户的文件执行任何任务(mapreduce等)。 简而言之,数据是安全的,只有分配的用户和超级用户才能访问。 设置多个用户帐户的步骤

要添加能够执行hadoop操作的新用户,请执行以下步骤。

第1步

创建新用户 对于Ubuntu

sudo  adduser  --ingroup   <groupname>   <username>

对于RedHat变体

useradd  -g <groupname>   <username>

的passwd 然后输入用户详细信息和密码。

第2步

我们需要更改HDFS中目录的权限,其中hadoop存储其临时数据。 打开core-site.xml文件 找到hadoop.tmp.dir的值。 在我的core-site.xml中,它是/ app / hadoop / tmp。在前面的步骤中,我将使用/ app / hadoop / tmp作为我的目录来存储hadoop数据(即hadoop.tmp.dir的值)。 然后从超级用户帐户执行以下步骤。

hadoop fs –chmod -R  1777 /app/hadoop/tmp/mapred/staging

第3步 下一步是在hadoop.tmp.dir上给我们的用户组写入权限(这里是/ app / hadoop / tmp。打开core-site.xml以获取hadoop.tmp.dir的路径)。这应该仅在添加新用户的机器(节点)中完成。 chmod 777 / app / hadoop / tmp 第4步 下一步是在HDFS中为新用户创建目录结构。 对于超级用户,请创建目录结构。 例如:hadoop fs –mkdir /user/username/ 第5步 有了这个,我们将无法运行mapreduce程序,因为新创建的目录结构的所有权是超级用户。因此,将HDFS中新创建的目录的所有权更改为新用户。

hadoop  fs –chown –R username:groupname   <directory to access in HDFS>

Eg: hadoop fs –chown –R username:groupname  /user/username/

第6步 以新用户身份登录并执行hadoop作业..

su  – username

答案 1 :(得分:1)

我有类似的文件权限问题,并且没有通过执行hadoop fs –chmod -R 1777 /app/hadoop/tmp/mapred/staging得到修复。

相反,它通过执行以下Unix命令$ sudo chmod -R 1777 /app/hadoop/tmp/mapred

得到修复