在 hadoop 中启动 namenode 失败?

新手上路,请多包涵

我在 Windows 7 中配置了 Hadoop, 教程 是它设置了一个单节点集群。当运行 hdfs namenode -format 格式化 namenode 时,它会抛出如下异常: 当 start-all.cmd windows namenode 自动强制时,我可以在地址 - http://localhost:50070 中打开 namenode GUI。

16/01/19 15:18:58 WARN namenode.FSEditLog: No class configured for C, dfs.namenode.edits.journal-plugin.C is empty 16/01/19 15:18:58 ERROR namenode.NameNode: Failed to start namenode. java.lang.IllegalArgumentException: No class configured for C at org.apache.hadoop.hdfs.server.namenode.FSEditLog.getJournalClass(FSEditLog.java:1615) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.createJournal(FSEditLog.java:1629) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:282) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:247) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:985) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1429) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554) 16/01/19 15:18:58 INFO util.ExitUtil: Exiting with status 1 16/01/19 15:18:58 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************

核心站点.xml

 <configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

hdfs-site.xml

 <configuration>
   <property>
       <name>dfs.replication</name>
       <value>1</value>
   </property>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>C:/hadoop/data/namenode</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>C:/hadoop/data/datanode</value>
   </property>
</configuration>

mapred-site.xml

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

纱线网站.xml

 <configuration>
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
</configuration>

原文由 Van Loc 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 873
2 个回答

更改您的以下属性:

 <property>
   <name>dfs.namenode.name.dir</name>
   <value>C:/hadoop/data/namenode</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value>C:/hadoop/data/datanode</value>
</property>

至:

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

原文由 SMA 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于 Windows,目录应类似于此格式 /c:/path/to/dirfile:///D:/path/to/dir

我试过使用“/hadoop/data/namenode”,由于指定的 namenode 目录不存在而阻止启动 namenode。我发现它在使用“/hadoop/data/namenode”时将文件存储在 c 驱动器中,但在启动时dfs 它将解析相对于 hadoop 源所在驱动器的路径。

我已经切换到使用以下并且工作正常:

 <property>
   <name>dfs.namenode.name.dir</name>
   <value>/d:/hadoop/data/namenode</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value>/d:/hadoop/data/datanode</value>
</property>

提示:不要忘记驱动器名称前的前缀斜杠 /d:/

原文由 Muhammad Soliman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题