DataNode не запускается в singlelenode hadoop 2.6.0

Я установил hadoop 2.6.0 на свой ноутбук под управлением Ubuntu 14.04LTS. Я успешно запустил демонов hadoop, запустив start-all.sh и я успешно WourdCount пример WourdCount, а затем попытался запустить пример jar, который не работал со мной, поэтому я решил форматировать с использованием hadoop namenode -format и начать все снова, но когда я запускаю всех демонов, используя start-dfs.sh && start-yarn.sh тогда запускаются все демоны jps, но не datanode, как показано ниже:

[email protected]:/usr/local/hadoop$ jps
12628 NodeManager
12110 NameNode
12533 ResourceManager
13335 Jps
12376 SecondaryNameNode

Как это решить?

Ответ 1

Я столкнулся с этой проблемой, и ее очень легко решить. Ваш datanode не запускается, потому что после запуска namenode и datanode вы снова форматировали namenode. Это означает, что вы очистили метаданные от namenode. Теперь файлы, которые вы сохранили для запуска подсчета слов, все еще находятся в datanode, а datanode не имеет понятия, куда отправлять отчеты блоков с момента форматирования namenode, чтобы он не запускался.

Вот что вам нужно сделать, чтобы исправить это. Остановите все службы Hadoop (stop-all.sh) и закройте все активные ssh-соединения.

cat /usr/local/hadoop/etc/hadoop/hdfs-site.xml

Этот шаг важен, см., Где хранятся данные данных datanode. Это значение, связанное с datanode.data.dir. Для меня это /usr/local/hadoop/hadoop_data/hdfs/datanode. Откройте терминал и перейдите в каталог выше и удалите каталог с именем current, который будет находиться в этом каталоге. Убедитесь, что вы удаляете только текущий каталог.

sudo rm -r /usr/local/hadoop/hadoop_data/hdfs/datanode/current

Теперь отформатируйте namenode и проверьте, все ли в порядке.

hadoop namenode -format

скажите "да", если он просит вас чего-нибудь.

jps

Надеюсь, мой ответ решает проблему. Если это не даст мне знать.

Маленький совет: не форматируйте свой namenode. Без наменода нет возможности восстановить данные. Если ваш wordcount не работает, это еще одна проблема.

Ответ 2

Вам просто нужно удалить все содержимое папки DataNode и форматировать Datanode с помощью следующей команды

hadoop namenode -format

Ответ 3

У меня была эта проблема при форматировании именоменования. Что я сделал для решения проблемы:

  1. Найдите местоположение dfs.name.dir. Рассмотрим, например, ваш dfs.name.dir is /home/hadoop/hdfs.

(a) Теперь перейдите в /home/hadoop/hdfs/current.

(b) Найдите файл VERSION. Откройте его с помощью текстового редактора.

(c) Будет namespaceID=122684525 (122684525 - мой идентификатор, ваш будет другим). Обратите внимание на идентификатор.

  1. Теперь найдите местоположение hadoop.tmp.dir. Mine is /home/hadoop/temp.

(a) Перейдите в /home/hadoop/temp/dfs/data/current.

(b) Найдите файл VERSION и откройте его с помощью текстового редактора.

(c) Будет поле namespaceID=. Имена пространства имен в этом файле и предыдущем должны быть одинаковыми.

(d) Это основная причина, почему мой datanode не был запущен. Я сделал их одинаковыми, и теперь datanode начинает нормально.

Примечание: скопируйте /home/hadoop/hdfs/current/VERSION пространства имен из /home/hadoop/hdfs/current/VERSION в /home/hadoop/temp/dfs/data/current/VERSION. Не делайте это в обратном порядке.

  1. Теперь сделайте start-dfs.sh && start-yarn.sh. Будет запущен Datanode.

Ответ 4

Даже у меня была такая же проблема, и я проверил журнал и нашел ниже ошибку

Исключение - журнал Datanode FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: исключение в secureMain java.io.IOException: все каталоги в файле dfs.datanode.data.dir недопустимы: "/usr/local/hadoop_store/hdfs/DataNode/

Выполните команду ниже, чтобы решить проблему.

sudo chown -R hduser: hadoop/usr/local/hadoop_store

Примечание. Я создал namenode и datanode в пути /usr/local/hadoop_store

Ответ 5

Вышеупомянутая проблема возникает из-за форматирования namenode (hadoop namenode -format) без остановки демонов dfs и нити. При формировании namenode появляется вопрос, приведенный ниже, и вы нажимаете клавишу Y для этого. Re -format в каталоге хранилища /tmp/hadoop -r oot/dfs/name? (Y или N)

Решение. Вам нужно удалить файлы в текущем каталоге (каталоге) каталога dfs.name.dir, упомянутом в hdfs.site.xml. В моей системе dfs.name.dir доступен в /tmp/hadoop -r oot/dfs/name/current. rm -r/tmp/hadoop -r oot/dfs/name/current Используя приведенный выше комментарий, я удалил файлы внутри текущего каталога. Убедитесь, что вы удаляете только "текущую" директорию. Отформатируйте namenode после остановки демонов dfs и пряжи (stop-dfs.sh и stop-yarn.sh). Теперь datanode начнется нормально !!

Ответ 6

на core-site.xml проверьте абсолютный путь каталога temp, если это не указано правильно или не создано (mkdir). Невозможно запустить узел данных.

Ответ 7

добавить свойство ниже в yarn-site.xml

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

Ответ 8

не правильный способ сделать это. но верно работает ~

удалите файлы из своего каталога данных, namenode и tmp. любые файлы/папки, созданные внутри них, принадлежат hadoop и могут иметь некоторую ссылку на последние данные datanode запуска, которые могут быть сбойными или заблокированными, из-за которых datanode не запускается при следующей попытке

Ответ 9

У меня такая же проблема (DataNode & TaskTracker не появлялся).

РАЗРЕШЕНИЕ: УДАЛИТЬ КАЖДЫЙ "ТЕКУЩИЙ" SUB-DIRECTORY UNDER: данные, имя и имена вторичных для решения DataNode/taskTracker, не отображающиеся при запуске -all.sh, затем jps

(Мое место dfs.name.dir : /home/training/hadoop-temp/dfs/data/current;/home/training/hadoop-temp/dfs/name/current;/home/training/hadoop-temp/dfs/namesecondary/ток

Убедитесь, что вы остановили службы: stop-all.sh

1. Перейдите в каждый "текущий" подкаталог под данными, именем, именами и удалите/удалите (например: rm -r name/current)

2. Затем отформатируйте: namenode -format

3. mkdir current under/home/training/hadoop-temp/dfs/data/current

4. Возьмите каталог и содержимое из /home/training/hadoop-temp/dfs/name/current и скопируйте в каталог /data/current

ПРИМЕР: файлы под:

/Главная/Обучение /Hadoop-Temp/ДПП/имя/ток

[тренинг @CentOS текущий] $ ls -l

-r ш -r ш -r -. 1 учебная подготовка 9901 сент. 25 01:50 правки

-r ш -r ш -r -. 1 учебная подготовка 582 сент. 25 01:50 fsimage

-r ш -r ш -r -. 1 тренинг-тренинг 8 сент. 25 01:50 fstime

-r ш -r ш -r -. 1 учебная подготовка 101 сент. 25 01:50 ВЕРСИЯ

5. Измените storageType = NAME_NODE в VERSION на storageType = DATA_NODE в данных/текущем/ВЕРСИИ, которые вы только что скопировали.

ДО:

[обучение @CentOS dfs] $ cat data/current/VERSION

namespaceID = 1018374124

CTime = 0

storageType = NAME_NODE

layoutVersion = -32

ПОСЛЕ:

[обучение @CentOS dfs] $ cat data/current/VERSION

namespaceID = 1018374124

CTime = 0

storageType = DATA_NODE

layoutVersion = -32

6. Убедитесь, что в каждом поддиректории ниже указаны те же файлы, что и имя/текущий, для данных, имени, имен

[обучение @CentOS dfs] $ pwd

/Главная/Обучение /Hadoop-Temp/ДПП/

[обучение @CentOS dfs] $ ls -l

всего 12

drwxr-XR-х. 5 тренировочное обучение 4096 сен 25 01:29 данные

drwxrwxr-х. 5 тренировочное обучение 4096 сент. 25 01:19 название

drwxrwxr-х. 5 тренировочных тренингов 4096 25 сен 01:29 namesecondary

7. Теперь запустите службы: start-all.sh Вы должны увидеть все 5 служб при вводе: jps

Ответ 10

Я использую hasoop-2.6.0.I решил с помощью:

1.Удаление всех файлов в /usr/local/hadoop_store/hdfs

команда: sudo rm -r/usr/local/hadoop_store/hdfs/*

2.Format hadoop namenode

команда: hadoop namenode -format

3.Go to..../sbin directory (cd/usr/local/hadoop/sbin)

start-all.sh

  1. используйте команду ==> hduser @abc-3551:/$ jps

Теперь будут запущены следующие службы:

19088 Jps
18707 ResourceManager
19043 NodeManager
18535 SecondaryNameNode
18329 DataNode
18159 NameNode