Namenode не запускается
Я использовал Hadoop в псевдораспределенном режиме, и все работало нормально. Но потом мне пришлось перезагрузить компьютер по какой-то причине. И теперь, когда я пытаюсь запустить Namenode и Datanode, я могу найти только Datanode. Может ли кто-нибудь сказать мне возможную причину этой проблемы? Или я делаю что-то неправильно?
Я попробовал как bin/start-all.sh
, так и bin/start-dfs.sh
.
Ответы
Ответ 1
Я столкнулся с вопросом о том, что namenode не запускается. Я нашел решение, используя следующее:
- сначала удалите все содержимое из временной папки:
rm -Rf <tmp dir>
(мой был /usr/local/hadoop/tmp )
- форматировать namenode:
bin/hadoop namenode -format
- снова запустите все процессы:
bin/start-all.sh
Вы также можете подумать об откате, используя контрольную точку (если вы ее включили).
Ответ 2
hadoop.tmp.dir
в файле core-site.xml defaulted до /tmp/hadoop-${user.name}
, который очищается после каждой перезагрузки. Измените это на другой каталог, который не очищается при перезагрузке.
Ответ 3
После STEPS работал у меня с hadoop 2.2.0,
ШАГ 1 stop hadoop
[email protected]$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh
ШАГ 2 удалить папку tmp
[email protected]$ sudo rm -rf /app/hadoop/tmp/
ШАГ 3 create/app/hadoop/tmp/
[email protected]$ sudo mkdir -p /app/hadoop/tmp
[email protected]$ sudo chown hduser:hadoop /app/hadoop/tmp
[email protected]$ sudo chmod 750 /app/hadoop/tmp
STEP 4 форматирование namenode
[email protected]$ hdfs namenode -format
ШАГ 5 начать dfs
[email protected]$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh
ШАГ 6 проверить jps
[email protected]$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode
Ответ 4
В conf/hdfs-site.xml у вас должно быть свойство типа
<property>
<name>dfs.name.dir</name>
<value>/home/user/hadoop/name/data</value>
</property>
Свойство "dfs.name.dir" позволяет вам контролировать, где Hadoop записывает метаданные NameNode.
И, давая ему другой каталог, а не /tmp, убедитесь, что данные NameNode не удаляются при перезагрузке.
Ответ 5
Откройте новый терминал и запустите namenode, используя path-to-your-hadoop-install/bin/hasoop namenode
Проверка с использованием jps и namenode должна выполняться
Ответ 6
Если кто-либо использует версию hadoop1.2.1 и не может выполнить namenode, перейдите к core-site.xml
и измените dfs.default.name
на fs.default.name
.
Затем отформатируйте namenode с помощью $hadoop namenode -format
.
Наконец, запустите hdfs с помощью start-dfs.sh
и проверьте службу с помощью jps..
Ответ 7
Почему в большинстве ответов здесь предполагается, что все данные необходимо удалить, переформатировать и перезапустить Hadoop?
Как мы узнаем, что namenode не прогрессирует, но занимает много времени.
Он будет делать это, когда в HDFS будет большой объем данных.
Проверьте прогресс в журналах, прежде чем считать что-либо висело или застряло.
$ [[email protected] logs]$ tail hadoop-kadmin-namenode-hadoop-node-0.log
...
016-05-13 18:16:44,405 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 117/141 transactions completed. (83%)
2016-05-13 18:16:56,968 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 121/141 transactions completed. (86%)
2016-05-13 18:17:06,122 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 122/141 transactions completed. (87%)
2016-05-13 18:17:38,321 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 123/141 transactions completed. (87%)
2016-05-13 18:17:56,562 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 124/141 transactions completed. (88%)
2016-05-13 18:17:57,690 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 127/141 transactions completed. (90%)
Это было почти через час ожидания в конкретной системе.
Он все еще прогрессирует каждый раз, когда я смотрю на него.
Имейте терпение с Hadoop, когда вы поднимаете систему и проверяете журналы, прежде чем предполагать, что что-то висело или не прогрессирует.
Ответ 8
В файле core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yourusername/hadoop/tmp/hadoop-${user.name}
</value>
</property>
</configuration>
и формат наменода с:
hdfs namenode -format
работал для hadoop 2.8.1
Ответ 9
Вы изменили conf/hdfs-site.xml
dfs.name.dir
?
Отформатируйте namenode после его изменения.
$ bin/hadoop namenode -format
$ bin/hadoop start-all.sh
Ответ 10
Если вы сохранили настройки по умолчанию при запуске hasoop, то порт для namenode будет равен 50070. Вам нужно будет найти какие-либо процессы, запущенные на этом порту, и сначала уничтожить их.
-
Остановить все запущенные операции с помощью: bin/stop-all.sh
проверить все процессы, запущенные на порту 50070
-
sudo netstat -tulpn | grep :50070
# проверить все процессы, запущенные в
порт 50070, если есть /will
появляются на выходе RHS.
-
sudo kill -9 <process_id> #kill_the_process
.
-
sudo rm -r /app/hadoop/tmp
#delete временная папка
-
sudo mkdir /app/hadoop/tmp
#recreate it
-
sudo chmod 777 –R /app/hadoop/tmp
(777 приведено только для этого примера)
-
bin/hadoop namenode –format
#format hadoop namenode
-
bin/start-all.sh
# start-all hadoop services
Обратитесь этот блог
Ответ 11
Если вы столкнулись с этой проблемой после перезагрузки системы, то ниже шаги будут работать нормально
Обходной путь.
1) форматируйте namenode: bin/hadoop namenode -format
2) снова запустите все процессы: bin/start-all.sh
Для Perm fix: -
1) перейдите в /conf/core -site.xml, измените fs.default.name на свой собственный.
2) отформатируйте namenode: bin/hadoop namenode -format
3) снова запустите все процессы: bin/start-all.sh
Ответ 12
Попробуйте это,
1) Остановить все процессы хаопов: stop-all.sh
2) Удалите папку tmp вручную
3) Формат namenode: hadoop namenode -format
4) Запустите все процессы: start-all.sh
Ответ 13
Столкнулась с той же проблемой.
(1) Всегда проверяйте ошибки ввода при настройке файлов .xml
, особенно теги xml.
(2) перейдите в каталог bin. и введите ./start-all.sh
(3), затем введите jps
, чтобы проверить, работают ли процессы
Ответ 14
Для меня следующие работали после того, как я сменил каталог наменода
и datanode в hdfs-site.xml
- перед выполнением следующих шагов остановите все службы с помощью stop-all.sh
или в моем случае я использовал stop-dfs.sh
, чтобы остановить dfs
- В новом настроенном каталоге для каждого node (namenode и datanode) удалите каждую папку/файлы внутри него (в моем случае - текущий каталог).
- удалить временный каталог Hadoop:
$rm -rf /tmp/haddop-$USER
- формат Namenode:
hadoop/bin/hdfs namenode -format
-
start-dfs.sh
После выполнения этих шагов мой namenode и datanodes были живы, используя новый сконфигурированный каталог.
Ответ 15
Добавить свойство hadoop.tmp.dir в файле core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yourname/hadoop/tmp/hadoop-${user.name}</value>
</property>
</configuration>
и формат hdfs (hadoop 2.7.1):
$ hdfs namenode -format
Значение по умолчанию в core-default.xml - это /tmp/hadoop -${user.name}, которое будет удалено после перезагрузки.
Ответ 16
Если ваш namenode застрял в safemode, вы можете ssh ввести namenode, su hdfs
user и запустить следующую команду, чтобы отключить безопасный режим:
hdfs dfsadmin -fs hdfs://server.com:8020 -safemode leave
Ответ 17
Я запустил $hadoop namenode
, чтобы запустить namenode вручную на переднем плане.
Из журналов я понял, что 50070 окупирован, который по умолчанию использовался dfs.namenode.http-address. После настройки dfs.namenode.http-address в hdfs-site.xml все прошло хорошо.
Ответ 18
После перезагрузки я столкнулся с тем же.
для hadoop-2.7.3 все, что мне нужно было сделать, это форматировать namenode:
<HadoopRootDir>/bin/hdfs namenode -format
Затем команда jps показывает
6097 DataNode
755 RemoteMavenServer
5925 NameNode
6293 SecondaryNameNode
6361 Jps
Ответ 19
I got the solution just share with you that will work who got the errors:
1. First check the /home/hadoop/etc/hadoop path, hdfs-site.xml and
check the path of namenode and datanode
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
2.Check the permission,group and user of namenode and datanode of the particular path(/home/hadoop/hadoopdata/hdfs/datanode), and check if there are any problems in all of them and if there are any mismatch then correct it. ex .chown -R hadoop:hadoop in_use.lock, change user and group
chmod -R 755 <file_name> for change the permission
Ответ 20
После удаления папки данных диспетчеров ресурсов проблема исчезла.
Даже если у вас есть форматирование, эта проблема не может быть решена.
Ответ 21
Вместо форматирования namenode, возможно, вы можете использовать следующую команду для перезапуска namenode. Это сработало для меня:
sudo service hasoop-master restart
- hadoop dfsadmin -safemode leave