Я настроил и развернул hadoop для настройки одного узла с помощью этого учебника.
Все развернуто нормально, но когда я делаю jps для просмотра активных процессов, datanode не отображается.
Я попытался запустить датоделу вручную, перейдя к $HADOOP_HOME/bin : hadoop -datanode
, но безрезультатно.
Подводя итог, можно сказать, что процесс обработки данных на кластере hadoop вообще не выполняется.
Кроме того, я хочу знать, может ли одна машина иметь 2 установки hadoop. Я использую один для mapreduce процессов и другой для поисковой системы. ? так что их каталог другой, это нормально? Кроме того, я запускаю одну операцию hadoop одновременно.
РЕДАКТИРОВАТЬ 1 #: - , если это помогает, вот журнал, когда я пытался запустить датодан через $HADOOP_HOME
.
root@thinktank:/usr/local/hadoop/bin# hadoop datanode
Warning: $HADOOP_HOME is deprecated.
13/08/27 16:34:57 INFO datanode.DataNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG: host = thinktank/127.0.1.1
STARTUP_MSG: args = []
STARTUP_MSG: version = 1.2.1
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
STARTUP_MSG: java = 1.6.0_27
************************************************************/
13/08/27 16:34:57 INFO impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
13/08/27 16:34:57 INFO impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
13/08/27 16:34:57 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
13/08/27 16:34:57 INFO impl.MetricsSystemImpl: DataNode metrics system started
13/08/27 16:34:57 INFO impl.MetricsSourceAdapter: MBean for source ugi registered.
13/08/27 16:34:57 WARN impl.MetricsSystemImpl: Source name ugi already exists!
13/08/27 16:34:57 ERROR datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /app/hadoop/tmp/dfs/data: namenode namespaceID = 1955988395; datanode namespaceID = 1705269445
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:414)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:321)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1712)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1651)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1669)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1795)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1812)
13/08/27 16:34:57 INFO datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at thinktank/127.0.1.1
************************************************************/
hadoop datanode -start
.Проблема происходит из-за Несовместимого namespaceID.So, удалите tmp команды использования каталога
sudo rm -Rf /app/hadoop/tmp
Затем выполните шаги от:
sudo mkdir -p /app/hadoop/tmp
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
Хорошо, я нашел обходной путь. Похоже, у меня возникла ошибка: несовместимые идентификаторы пространства имен. Я нашел работу около здесь . Так что, наконец, это решено.
Если у вас также возникла та же проблема с несовместимыми идентификаторами пространств имен, попробуйте следующее, для меня это сработало. Оставляйте комментарии, если у вас все еще есть проблемы, и я перезвоню вам.
Решение:
1. Остановите проблемные узлы данных.
2. Измените значение namespaceID в $ {dfs.data.dir} / current / VERSION, чтобы сопоставить соответствующее значение текущего NameNode в $ {dfs.name.dir} / current / VERSION.
3. Перезапустите фиксированный DataNode. Это решит проблему для вас.