Hadoop权限问题

Hadoop权限问题,hadoop,permissions,Hadoop,Permissions,我已经安装了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上使用

我已经安装了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上使用我的管理员密码)也被拒绝

我想这是因为许可问题。还有什么我可以修的吗


谢谢

因此,当您运行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>

dfs.data.dir
/app/hadoop/data
dfs.name.dir
/app/hadoop/name
在从属设备上:

<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>

dfs.data.dir
/app/hadoop/data
dfs.name.dir
master:/app/hadoop/name
现在,一旦这样做了,您必须实际创建这些目录。因此,在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
sudo chown:/app/hadoop/name/app/hadoop/data/app/hadoop/tmp
sudo chmod 0777/app/hadoop/name/app/hadoop/data/app/hadoop/tmp

试试看,看是否有效。如果不是全部答案,我可以回答问题。

因此,当您运行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>

dfs.data.dir
/app/hadoop/data
dfs.name.dir
/app/hadoop/name
在从属设备上:

<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>

dfs.data.dir
/app/hadoop/data
dfs.name.dir
master:/app/hadoop/name
现在,一旦这样做了,您必须实际创建这些目录。因此,在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
sudo chown:/app/hadoop/name/app/hadoop/data/app/hadoop/tmp
sudo chmod 0777/app/hadoop/name/app/hadoop/data/app/hadoop/tmp

试试看,看是否有效。如果不是全部答案,我可以回答问题。

在本地系统上,您似乎没有创建hduser

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

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

$ sudo adduser --ingroup hadoop hduser
这假设您有hadoop组设置。如果未设置,则可以创建具有以下内容的组:

$ sudo addgroup hadoop

在本地系统上,似乎没有创建hduser

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

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

$ sudo adduser --ingroup hadoop hduser
这假设您有hadoop组设置。如果未设置,则可以创建具有以下内容的组:

$ sudo addgroup hadoop

谢谢食物真的很有帮助。看来我没有给予正确的许可。现在开始工作了!谢谢食物真的很有帮助。看来我没有给予正确的许可。现在开始工作了!