Не удалось запустить namenode в hadoop?
I config Hadoop в Windows 7 из учебника
Он устанавливает одиночный кластер Node.
При запуске hdfs namenode -format
для форматирования namenode он генерирует исключение, например:
И когда start-all.cmd
автоматически открывается окно namenode, я могу открыть графический интерфейс namenode в адресе - 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>
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>
пряжа 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>
Ответы
Ответ 1
Измените следующие свойства:
<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>
To:
<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>
Ответ 2
Для окон каталоги должны быть похожи на этот формат /c:/path/to/dir
или file:///D:/path/to/dir
:
Я пробовал использовать "/hadoop/data/namenode", который предотвращает запуск namenode из-за отсутствия существования указанного каталога namenode. Я обнаружил, что он хранит файлы на диске c при использовании "/hadoop/data/namenode" но при запуске dfs он будет разрешать пути относительно диска, на котором находится источник whereoop.
У меня есть переключатель, чтобы использовать следующее, и он работал нормально:
<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:/