无法在hadoop中启动namenode?

Van*_*Loc 19 java apache hadoop

我在教程中在Windows 7中配置Hadoop 它设置单节点集群.当运行hdfs namenode -format格式化namenode时,它会抛出异常,如下所示:当start-all.cmdwindows namenode auto forced 时,我可以在地址中打开namenode GUI - http:// localhost:50070.

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: /************************************************************

核心的site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>   
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

mapred-site.xml中

<configuration>
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

纱的site.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>
Run Code Online (Sandbox Code Playgroud)

SMA*_*SMA 40

从以下位置更改以下属性:

<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>
Run Code Online (Sandbox Code Playgroud)

至:

<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>
Run Code Online (Sandbox Code Playgroud)


Muh*_*man 7

对于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>
Run Code Online (Sandbox Code Playgroud)

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