Hadoop权限问题

时间:2014-08-20 19:18:19

标签: hadoop permissions

我自制安装了hadoop,但现在有了权限控制问题 hadoop namenode -format和./start-all.sh命令。

我认为这是因为我将设置放在" core-site.xml"中。 " hadoop.tmp.dir"我把" / tmp / $ {name}"下。

现在它在namenode -format中给我一个错误,因为:无法创建文件夹,权限被拒绝。 即使我sudo这个命令,但在start-all.sh命令中,仍然有很多权限被拒绝。我尝试sudo start-all.sh但是密码(我只在mac上使用这个传递给我的管理员)但是也被拒绝了。

我认为这是因为许可问题。无论如何我可以解决它吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

在本地系统上,看起来您没有创建hduser用户。

作为一个典型的设置过程,创建一个hadoop组和添加到该组的hduser用户是一个很好的过程。

您可以使用以下命令使用root / super用户帐户执行此操作:

$ sudo adduser --ingroup hadoop hduser

这假设您已设置hadoop组。如果没有设置,您可以创建一个组:

$ sudo addgroup hadoop

答案 1 :(得分:0)

因此,当您运行Hadoop时,它会将内容存储在您在hdfs-site.xml文件中配置的数据,名称和tmp目录中。如果你没有设置这些设置,它们将指向$ {hadoop.tmp.dir} / dfs / data,在你的情况下为/ tmp dir。这不是您希望存储数据的位置。您首先需要将这些添加到您的hdfs配置文件中,以及其他设置。

<property>
    <name>dfs.data.dir</name>
    <value>/app/hadoop/data</value>
</property>
<property>
    <name>dfs.name.dir</name>
    <value>/app/hadoop/name</value>
</property>

奴隶

<property>
    <name>dfs.data.dir</name>
    <value>/app/hadoop/data</value>
</property>
<property>
    <name>dfs.name.dir</name>
    <value>master:/app/hadoop/name</value>
</property>

现在一旦完成,您必须实际制作这些目录。所以在master上创建以下dirs: / app / hadoop / name,/ app / hadoop / data和/ app / hadoop / tmp。 在除了名称dir。

之外的从站上创建相同的

现在您需要设置权限,以便Hadoop可以使用它们。 第二行只是为了确定。

sudo chown <hadoop user>:<hadoop user> /app/hadoop/name /app/hadoop/data /app/hadoop/tmp
sudo chmod 0777 /app/hadoop/name /app/hadoop/data /app/hadoop/tmp

试试看,看看它是否有效。如果问题不完整,我可以回答问题。