root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.
no puedo crear nada en hdfs
yo hice
root# bin/hadoop fs -safemode leave
Pero mostrando
safemode: Unknown command
¿Cuál es el problema?
Respuestas:
Para permitir forzosamente que el namenode salga del modo seguro, se debe ejecutar el siguiente comando:
Está obteniendo un
Unknown command
error para su comando ya-safemode
que no es un subcomando dehadoop fs
, pero lo es dehadoop dfsadmin
.Además, después del comando anterior, le sugiero que
hadoop fsck
lo ejecute una vez para que se solucione cualquier inconsistencia que se haya producido en los hdfs.Actualizar:
Use
hdfs
comando en lugar dehadoop
comando para distribuciones más nuevas. Elhadoop
comando está en desuso:hadoop dfsadmin
ha quedado obsoleto y también lo es elhadoop fs
comando, todas las tareas relacionadas con hdfs se están moviendo a un comando separadohdfs
.fuente
hadoop dfsadmin
comando, me dio esto:______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF
______ ... pero aún se ejecutó. Parece que la sugerencia de @ user3316017 a continuación es la sintaxis recomendada.hdfs dfsadmin -safemode leave
se ejecute el comando porque el clúster está lleno, a veces es posible salir de la situación encadenando inmediatamente un comando para limpiar cosas, por ejemplohdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
prueba esto, funcionará
fuente
El comando no funcionó para mí, pero lo siguiente sí
Usé el
hdfs
comando en lugar delhadoop
comando.Consulte http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe- modo- enlace también
fuente
Si usa Hadoop versión 2.6.1 anterior, mientras el comando funciona, se queja de que está depreciado. De hecho, no pude usar el
hadoop dfsadmin -safemode leave
porque estaba ejecutando Hadoop en un contenedor Docker y ese comando falla mágicamente cuando se ejecuta en el contenedor, así que lo que hice fue esto. Revisé el documento y encontrédfs.safemode.threshold.pct
en la documentación que diceasí que cambié el
hdfs-site.xml
a lo siguiente (en versiones anteriores de Hadoop, aparentemente debes hacerlo enhdfs-default.xml
:fuente
Namenode entra en modo seguro cuando hay escasez de memoria. Como resultado, HDFS solo se vuelve legible. Eso significa que no se puede crear ningún directorio o archivo adicional en el HDFS. Para salir del modo seguro, se utiliza el siguiente comando:
Si está utilizando cloudera manager:
Pero no siempre resuelve el problema. La solución completa está en hacer espacio en la memoria. Use el siguiente comando para verificar su uso de memoria.
Si está usando cloudera, también puede verificar si el HDFS muestra algunos signos de mala salud. Probablemente debe estar mostrando algún problema de memoria relacionado con el nodo de nombre. Asigne más memoria siguiendo las opciones disponibles. No estoy seguro de qué comandos usar para el mismo si no está usando cloudera manager, pero debe haber una manera. ¡Espero eso ayude! :)
fuente
Prueba esto
comprobar el estado del modo seguro
Si todavía está en modo seguro, entonces una de las razones sería que no hay suficiente espacio en su nodo, puede verificar el uso del disco de su nodo usando:
si la partición raíz está llena, elimine archivos o agregue espacio en su partición raíz y vuelva a intentar el primer paso.
fuente
modo
seguro activado significa (HDFS está en modo de solo lectura) modo seguro desactivado significa (HDFS está en modo de escritura y lectura)
En
Hadoop 2.6.0
, podemos verificar el estado del nodo de nombre con la ayuda de los siguientes comandos:PARA VERIFICAR EL NOMBRE DEL NODO
PARA ENTRAR EN MODO SEGURO:
PARA SALIR DEL modo SEGURO
fuente
Ejecute el siguiente comando con el usuario del sistema operativo HDFS para deshabilitar el modo seguro:
fuente
use el siguiente comando para desactivar el modo seguro
$> hdfs dfsadmin -safemode dejar
fuente