【问题标题】:Cannot create directory /home/hadoop/hadoopinfra/hdfs/namenode/current无法创建目录 /home/hadoop/hadoopinfra/hdfs/namenode/current
【发布时间】:2016-02-08 20:38:21
【问题描述】:

我得到了错误

Cannot create directory /home/hadoop/hadoopinfra/hdfs/namenode/current

尝试在我的本地 Mac 上安装 hadoop 时。

这可能是什么原因?仅供参考,我将我的 xml 文件放在下面:

mapred-site.xml:

<configuration>

   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

hdfs-site.xml:

<configuration>
    <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>

   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>

   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

核心站点.xml:

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

我认为我的问题在于我的 hdfs-site.xml 文件,但我不确定如何查明/更改它。

我正在使用this教程,文件路径中的“hadoop”替换为我的用户名。

【问题讨论】:

  • 检查目录权限

标签: hadoop hdfs


【解决方案1】:

我也遇到过这个问题,是权限问题。我刚刚做了:

sudo chmod 777 /home/hadoop/hadoopinfra/hdfs/namenode/

并且有效!

【讨论】:

  • 请注意,这是设置目录的广泛开放权限。在生产环境中不是一个好的做法,但它确实解决了问题。非常感谢。
  • 当然,在生产环境中这不是一个好的做法。
  • 你可以这样做 sudo chown username:username -R /path/to/hadoopNodes/namenode/
【解决方案2】:

可能的错误:hdfs-site.xml 文件配置错误

这发生在我学习设置教程时。 hdfs-site.xml 对我来说的内容是

<configuration>
    <property>
            <name>dfs.namenode.name.dir</name>
            <value>/home/hadoop/data/nameNode</value>
    </property>

    <property>
            <name>dfs.datanode.data.dir</name>
            <value>/home/hadoop/data/dataNode</value>
    </property>

    <property>
            <name>dfs.replication</name>
            <value>1</value>
    </property>
</configuration>

直到那时我才意识到上面文件中的文本hadoop对应于用户名,在我的例子中,它必须替换为hduser。当hadoop 的两次出现都被hduser 替换时,hdfs namenode -format 命令运行良好。

【讨论】:

    【解决方案3】:

    在需要验证 hadoop 安装的步骤中,不要使用“hdfs namenode -format”,而是使用“/usr/local/hadoop/bin/hdfs namenode -format”

    从以下位置找到此答案: hadoop java.io.IOException: while running namenode -format

    【讨论】:

      【解决方案4】:

      如果您没有使用原生 hadoop 以外的任何其他发行版,则将当前用户添加到 hadoop 组并重试格式化 namenode。

      sudo usermod -a -G hadoop <current-username>
      

      如果使用第三方hadoop发行版如Cloudera、Hortonworks或MapR,切换到root用户再切换到hdfs用户然后尝试格式化namenode会成功。

      $ sudo -i 
      $ su - hdfs
      $ hdfs namenode -format
      

      【讨论】:

        【解决方案5】:

        用 sudo 试试 Hadoop 命令

        【讨论】:

          猜你喜欢
          • 2014-09-26
          • 1970-01-01
          • 2018-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多