hadoop权限问题

acruukt9  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(388)

我已经在自制中安装了hadoop,但是现在在执行hadoop namenode-format和./start-all.sh命令时出现了权限控制问题。
我想这是因为我把设置放在了“core site.xml”中。我将“/tmp/${name}”放在“hadoop.tmp.dir”下面。
现在它给了我namenode格式的错误:无法创建文件夹,权限被拒绝。即使我sudo这个命令,但是在start-all.sh命令中,仍然有很多权限被拒绝。我试图sudo start-all.sh,但密码(我只使用这个通行证为我的管理员在mac上),但也拒绝了。
我想是因为权限问题。有什么我能修好的吗?
谢谢!

bz4sfanl

bz4sfanl1#

在本地系统上,似乎没有创建hduser。
作为一个典型的设置过程,创建hadoop组并将hduser用户添加到该组是一个很好的过程。
您可以通过以下命令使用root/super用户帐户执行此操作:

$ sudo adduser --ingroup hadoop hduser

这假设您已经安装了hadoop组。如果未设置,则可以使用以下内容创建组:

$ sudo addgroup hadoop
qlvxas9a

qlvxas9a2#

因此,当您运行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上创建以下目录:/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

试试看,看能不能用。如果不是全部答案,我可以回答问题。

相关问题