2016-01-19 20 views
11

I config Hadoop w windows 7 from tutorial To ustawienie klastra Single Node. Po uruchomieniu hdfs namenode -format, aby sformatować namenode, wyrzuć wyjątek, taki jak: A gdy start-all.cmd automatycznie zostanie wymuszone okno Namenode, będę mógł otworzyć GUI namenode w adresie - http://localhost:50070.Nie można uruchomić namenode w hadoop?

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> 

przędzy 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> 
+0

Dziękuję za wskazanie błędu, mam także zaktualizowałem go w moim samouczku. –

Odpowiedz

22

Zmień następujące właściwości z:

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

Do:

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

Dziękuję. Twoje pytanie rozwiązuje mój problem. –

+0

Yo, proszę pana, tak, ty! Jesteś piękny! dzięki! – null

+0

To działa dla mnie, wielkie dzięki! –

5

dla Windows, katalogi powinien być podobny do tego formatu /c:/path/to/dir lub file:///D:/path/to/dir:

mam próbował użyć "/ hadoop/data/namenode", który zapobiega uruchamianiu namenode z powodu nieistniejącego ce określonego katalogu namenode. Stwierdziłem, że zapisuje pliki na dysku podczas używania "/ hadoop/data/namenode", ale podczas uruchamiania dfs będzie rozwiązywać ścieżki relatywnie do dysku, na którym znajduje się źródło hadoop.

mam przełącznik do korzystania z następujących i działał prawidłowo:

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

Podpowiedź: Nie zapomnij ukośnik prefiksu przed nazwą napędu /d:/