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
У меня была эта проблема при форматировании именоменования. Что я сделал для решения проблемы:
- Найдите местоположение
dfs.name.dir
. Рассмотрим, например, ваш dfs.name.dir
is /home/hadoop/hdfs
.
(a) Теперь перейдите в /home/hadoop/hdfs/current
.
(b) Найдите файл VERSION
. Откройте его с помощью текстового редактора.
(c) Будет namespaceID=122684525
(122684525 - мой идентификатор, ваш будет другим). Обратите внимание на идентификатор.
- Теперь найдите местоположение
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
. Не делайте это в обратном порядке.
- Теперь сделайте
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
- используйте команду ==> hduser @abc-3551:/$ jps
Теперь будут запущены следующие службы:
19088 Jps
18707 ResourceManager
19043 NodeManager
18535 SecondaryNameNode
18329 DataNode
18159 NameNode