在hadoop中启动namenode失败?

cyej8jka  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(546)

我在windows7教程中配置hadoop,设置一个单节点集群。运行时 hdfs namenode -format 要格式化namenode,它会抛出异常,如:and when start-all.cmd windows namenode自动强制,然后我可以打开地址中的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: /************************************************************ core-site.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>

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

gv8xihay1#

我通过在hadoop根位置中添加namenode和datanode并使用

<property>
    <name>dfs.namenode.name.dir</name>
    <value>F:\hadoop-2.7.2\data\namenode</value>
</property>

不要使用反斜杠,而是使用正斜杠 F:/hadoop-2.7.2/data/namenode 或者使其成为有效的uri file:///f:/hadoop-2.7.2/data/namenode

svdrlsy4

svdrlsy42#

更改以下属性:

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

plicqrtu3#

对于windows,目录应类似于此格式 /c:/path/to/dir 或者 file:///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:/

相关问题