Подтвердить что ты не робот

Процесс Datanode не работает в Hadoop

Я установил и настроил кластер Hadoop с несколькими node, используя этот учебник.

Когда я вхожу в команду start-all.sh, он показывает все процессы, инициализирующие правильно, следующим образом:

starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-namenode-jawwadtest1.out
jawwadtest1: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest1.out
jawwadtest2: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest2.out
jawwadtest1: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-secondarynamenode-jawwadtest1.out
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-jobtracker-jawwadtest1.out
jawwadtest1: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest1.out
jawwadtest2: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest2.out

Однако, когда я набираю команду jps, я получаю следующий вывод:

31057 NameNode
4001 RunJar
6182 RunJar
31328 SecondaryNameNode
31411 JobTracker
32119 Jps
31560 TaskTracker

Как вы можете видеть, нет процесса обработки данных. Я попытался настроить один кластер node, но получил ту же проблему. Кто-нибудь может понять, что здесь может быть неправильным? Существуют ли какие-либо файлы конфигурации, которые не упоминаются в учебнике, или я, возможно, просмотрел их? Я новичок в Hadoop и потерял меня, и любая помощь будет очень признательна.

EDIT: Hadoop-корень-DataNode-jawwadtest1.log:

STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.3
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/$
************************************************************/
2012-08-09 23:07:30,717 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loa$
2012-08-09 23:07:30,734 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:30,735 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:30,736 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:31,018 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:31,024 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:32,366 INFO org.apache.hadoop.ipc.Client: Retrying connect to $
2012-08-09 23:07:37,949 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: $
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(Data$
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransition$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNo$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNod$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode($
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataN$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1$

2012-08-09 23:07:37,951 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: S$
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at jawwadtest1/198.101.220.90
************************************************************/
4b9b3361

Ответ 1

Вам нужно сделать что-то вроде этого:

  • bin/stop-all.sh (или stop-dfs.sh и stop-yarn.sh в серии 2.x)
  • rm -Rf /app/tmp/hadoop-your-username/*
  • bin/hadoop namenode -format (или hdfs в серии 2.x)

решение было взято из: http://pages.cs.brandeis.edu/~cs147a/lab/hadoop-troubleshooting/. В основном он состоит из перезапуска с нуля, поэтому убедитесь, что вы не потеряете данные, создав hdfs.

Ответ 2

Я столкнулся с той же проблемой. Я создал папку hdfs/home/username/hdfs с именами подкаталогов, данными и tmp, на которые были указаны в конфигурационных xml файлах hadoop/conf.

Когда я запустил hasoop и сделал jps, я не смог найти datanode, поэтому я попытался вручную запустить datanode, используя bin/hadoop datanode. Затем из сообщения об ошибке я понял, что у него есть разрешения на доступ к файлу dfs.data.dir =/home/username/hdfs/data/, который был указан в одном из конфигурационных файлов hadoop. Все, что мне нужно было сделать, это остановить hadoop, удалить содержимое каталога /home/username/hdfs/tmp/*, а затем попробовать эту команду - chmod -R 755 /home/username/hdfs/, а затем запустить hasoop. Я мог бы найти datanode!

Ответ 3

У меня была такая же проблема с запуском одиночного node псевдораспределенного экземпляра. Не удалось выяснить, как его решить, но быстрое обходное решение заключается в том, чтобы вручную запустить DataNode с помощью   hadoop-x.x.x/bin/hadoop datanode

Ответ 4

Я столкнулся с подобной проблемой при запуске datanode. Следующие шаги были полезны.

  • В каталоге [hadoop_directory]/sbin используйте. /stop -all.sh, чтобы остановить все запущенные службы.
  • Удалите dmp tmp, используя rm -r [hasoop_directory]/tmp (путь, сконфигурированный в [hasoop_directory]/etc/hadoop/core-site.xml)
  • sudo mkdir [hasoop_directory]/tmp (создать новый каталог tmp)
  • Перейдите в каталог */hadoop_store/hdfs, где вы создали namenode и datanode в качестве подкаталогов. (Пути, сконфигурированные в [hadoop_directory]/etc/hadoop/hdfs-site.xml). Используйте

    rm -r namenode
    
    rm -r datanode
    
  • В каталоге */hadoop_store/hdfs используйте

    sudo mkdir namenode
    
    sudo mkdir datanode
    

В случае возникновения разрешения используйте

   chmod -R 755 namenode 

   chmod -R 755 datanode
  1. В [hadoop_directory]/bin используйте

     hadoop namenode -format (To format your namenode)
    
  2. В каталоге [hadoop_directory]/sbin используйте. /start -all.sh или./start-dfs.sh для запуска служб.
  3. Используйте jps для проверки запущенных служб.

Ответ 5

Выполнить команды ниже: -

  • stop-all.sh(Запустить "Остановить все", чтобы остановить весь процесс hadoop)
  • rm -r/usr/local/hadoop/tmp/(каталог Hadoop tmp, который вы настроили в hadoop/conf/core-site.xml)
  • sudo mkdir/usr/local/hadoop/tmp (снова введите тот же каталог)
  • hasoop namenode -format (Отформатируйте свой namenode)
  • start-all.sh(Запустить "Запустить все", чтобы запустить весь процесс hadoop)
  • JPS (Он покажет запущенные процессы)

Ответ 6

Выполните следующие действия, и ваш datanode запустится снова.

  • Остановить dfs.
  • Откройте hdfs-site.xml
  • Снова удалите свойства data.dir и name.dir из hdfs-site.xml и -форматного namenode.
  • Затем удалите каталог hadoopdata и добавьте data.dir и name.dir в hdfs-site.xml и снова форматируйте namenode.
  • Затем запустите dfs снова.

Ответ 7

Остановить все службы -./stop-all.sh Отформатируйте весь каталог hdfs tmp со всех мастеров и ведомых. Не забудьте отформатировать из подчиненного устройства.

Отформатируйте namenode. (hasoop namenode -format)

Теперь запустите службы в namenode. . /bin/start -all.sh

Это заставило меня завести сервис datanode.

Ответ 8

Шаг 1: - Stop-all.sh

Шаг 2: - попал на этот путь

cd /usr/local/hadoop/bin

Шаг 3: - Запустите эту команду hadoop datanode

Теперь DataNode работает

Ответ 9

Попробуйте это 1. stop-all.sh 2. vi hdfs-site.xml 3. измените значение, указанное для свойства dfs.data.dir 4. форматировать namenode 5. start-all.sh

Ответ 10

У меня есть детали проблемы в файле журнала, как показано ниже: "Недопустимый каталог в dfs.data.dir: неправильное разрешение для /home/hdfs/dnman 1, ожидается: rwxr-xr-x, а актуально: rwxrwxr-x" и оттуда я определил, что разрешение файла datanote было 777 для моей папки. Я исправил до 755, и он начал работать.

Ответ 11

Обратите внимание, если свойство каталога tmp указывает на действительный каталог в файле core-site.xml

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp</value>
</property>

Если каталог неправильно сконфигурирован, процесс datanode не запускается должным образом.

Ответ 12

Вместо того, чтобы удалять все, что находится под "hadoop tmp dir", вы можете установить еще один. Например, если ваше свойство core-site.xml имеет это свойство:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp</value>
</property>

Вы можете изменить это на:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp2</value>
</property>

а затем scp core-site.xml для каждого node, а затем "hasoop namenode -format", а затем перезапустите hasoop.

Ответ 13

Это для более новой версии Hadoop (я запускаю 2.4.0)

  • В этом случае остановите кластер sbin/stop-all.sh
  • Затем перейдите в /etc/hadoop для файлов конфигурации.

В файле: hdfs-site.xml Следите за путями каталогов, соответствующими dfs.namenode.name.dir dfs.namenode.data.dir

  • Удалите обе директории рекурсивно (rm -r).
  • Теперь отформатируйте namenode через bin/hadoop namenode -format
  • И, наконец, sbin/start-all.sh

Надеюсь, что это поможет.

Ответ 14

Вам нужно проверить:

/app/hadoop/tmp/dfs/data/current/VERSION и /app/hadoop/tmp/dfs/name/current/VERSION ---

в этих двух файлах, а также идентификатор пространства имен имени node и datanode.

В том и только том случае, если данные node NamespaceID совпадают с именем node NamespaceID, тогда ваш datanode будет запущен.

Если они разные, скопируйте NamespaceID namenode в свой идентификатор пространства имен Datanode с помощью редактора vi или gedit и сохраните и запустите deamons, он будет работать отлично.

Ответ 15

если форматирование каталога tmp не работает, попробуйте следующее:

  • сначала остановите все объекты, такие как namenode, datanode и т.д. (вы будете иметь команду script или команду для этого)
  • Формат каталога tmp
  • Перейдите в/var/cache/hadoop-hdfs/hdfs/dfs/и удалите все содержимое в каталоге вручную
  • Теперь отформатируйте свой namenode снова
  • запустите все сущности, затем используйте команду jps, чтобы подтвердить, что datanode запущен.
  • Теперь запустите любое приложение, которое у вас есть

Надеюсь, что это поможет.

Ответ 16

  • Я сконфигурировал hasoop.tmp.dir в файле conf/core-site.xml
  • Я настроил dfs.data.dir в conf/hdfs-site.xml
  • Я настроил dfs.name.dir в conf/hdfs-site.xml
  • Удалено все в директории "/tmp/hadoop-/"
  • Изменены права доступа с 777 до 755 для каталога, указанного в dfs.data.dir

    И начали работать данные node.

Ответ 17

Даже после удаления переделанных каталогов дататод не запускался. Итак, я начал его вручную, используя bin/hadoop datanode Он не дошел до конца. Я открыл другой терминал из того же имени пользователя и сделал jps, и он показал мне текущий процесс datanode. Он работает, но мне просто нужно оставить незавершенный терминал открытым.

Ответ 18

  • Сначала остановите dfs и пряжу.
  • Удалите каталоги datanode и namenode, как указано в файле core-site.xml.
  • Восстановите каталоги.
  • Затем заново запустите dfs и пряжу следующим образом.

    start-dfs.sh

    start-yarn.sh

    mr-jobhistory-daemon.sh запустить historyserver

    Надеюсь, это прекрасно работает.

Ответ 19

Необходимо выполнить 3 шага.

(1) Необходимо перейти к журналам и проверить последний журнал (In hadoop-  2.6.0/журналы/Hadoop-пользователь DataNode-ubuntu.log)

Если ошибка равна

java.io.IOException: Несовместимые идентификаторы кластера в /home/kutty/work/hadoop 2data/dfs/data: namenode clusterID = CID-c41df580-e197-4db6-a02a-a62b71463089; datanode clusterID = CID-a5f4ba24-3a56-4125-9137-fa77c5bb07b1

то есть. идентификатор кластера узлов и идентификатор кластера данных не идентичны.

(2) Теперь скопируйте идентификатор кластера namenode, который имеет значение CID-c41df580-e197-4db6-a02a-a62b71463089 при превышении ошибки

(3) Замените идентификатор кластера Datanode идентификатором кластера Namenode в файле hadoopdata/dfs/data/current/version

Кластерный = ИДС-c41df580-e197-4db6-a02a-a62b71463089

Перезапустить Hadoop. Запустит DataNode

Ответ 20

Выполните следующие действия, и ваш datanode запустится снова.

1) Остановить dfs. 2) Откройте файл hdfs-site.xml 3) Снова удалите свойства data.dir и name.dir из hdfs-site.xml и -форматного namenode.

4) Затем запустите dfs снова.

Ответ 21

Получена та же ошибка. Пытался начать и остановить dfs несколько раз, очистил все каталоги, упомянутые в предыдущих ответах, но ничего не помогло.

Проблема была решена только после перезагрузки ОС и настройки Hadoop с нуля. (настройка Hadoop с нуля без перезагрузки не работает)

Ответ 22

  • Удалите файлы, в которых данные и имя находятся в dfs.

В моем случае у меня есть hasoop на windows, над C:/, этот файл в соответствии с core-site.xml и т.д., он был в имени tmp/Administrator/dfs/data... и т.д., поэтому удалите его.

Затем, namenode -format. и повторите попытку,

Ответ 23

    mv /usr/local/hadoop_store/hdfs/datanode /usr/local/hadoop_store/hdfs/datanode.backup

    mkdir /usr/local/hadoop_store/hdfs/datanode

    hadoop datanode OR start-all.sh

    jps

Ответ 24

Ошибка в datanode.log

$ more /usr/local/hadoop/logs/hadoop-hduser-datanode-ubuntu.log

Показывает:

java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop_tmp/hdfs/datanode: namenode clusterID = CID-e4c3fed0-c2ce-4d8b-8bf3-c6388689eb82; datanode clusterID = CID-2fcfefc7-c931-4cda-8f89-1a67346a9b7c

Решение. Остановите свой кластер и выполните команду ниже, а затем снова запустите кластер.

sudo rm -rf  /usr/local/hadoop_tmp/hdfs/datanode/*