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

SafeModeException: Имя node находится в безопасном режиме

Я попытался скопировать файлы с локального диска на hdfs. Сначала он дал SafeModeException. При поиске решения я прочитал, что проблема не возникает, если повторять одну и ту же команду еще раз. Поэтому я попробовал еще раз, и это не дало исключений.

[email protected]:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg
copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hduser/gutenberg. Name node is in safe mode.
[email protected]:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg

Почему это происходит? Должен ли я сохранить safemode с помощью этого кода?

hadoop dfs -safemode leave
4b9b3361

Ответ 1

NameNode находится в safemode, пока не будет настроен процент блоков, которые, как сообщается, находятся в режиме онлайн узлами данных. Его можно настроить параметром dfs.namenode.safemode.threshold-pct в hdfs-site.xml

Для небольших/кластеров разработки, где у вас очень мало блоков, имеет смысл сделать этот параметр ниже, чем значение по умолчанию 0.9999f. В противном случае 1 отсутствующий блок может привести к зависанию системы в safemode.

Ответ 2

Перейдите к пути hadoop в bin (в моей системе /usr/local/hadoop/bin/),

cd /usr/local/hadoop/bin/

Проверьте, есть ли файл hadoop,

[email protected]:/usr/local/hadoop/bin$ ls

o/p будет,

hadoop            hadoop-daemons.sh  start-all.sh       start-jobhistoryserver.sh  stop-balancer.sh          stop-mapred.sh
hadoop-config.sh  rcc                start-balancer.sh  start-mapred.sh            stop-dfs.sh               task-controller
hadoop-daemon.sh  slaves.sh          start-dfs.sh       stop-all.sh                stop-jobhistoryserver.sh

Затем вам нужно выйти из безопасного режима, используя команду ./hadoop dfsadmin -safemode leave,

[email protected]:/usr/local/hadoop/bin$ ./hadoop dfsadmin -safemode leave

вы получите ответ как,

Safe mode is OFF

Примечание. Я создал пользователя Hadoop с именем hadoopuser.