El nodo de nombre está en modo seguro. No puedo irme

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 se puede crear nada en HDF

yo si

 root# bin/hadoop fs -safemode leave 

Pero mostrando

 safemode: Unknown command 

¿Cuál es el problema?

Solución

Para poder forzar que el namenode deje safemode, se debe ejecutar el siguiente comando:

  bin/hadoop dfsadmin -safemode leave 

-safemode un error de Unknown command para su comando ya que -safemode no es un sub-comando para hadoop fs , pero es de hadoop dfsadmin .

También después del comando anterior, te sugiero que una vez hadoop fsck para que las inconsistencias que se arrastran en los hdfs puedan resolverse.

Actualizar:

Use el comando hdfs lugar del comando hadoop para las distribuciones más nuevas. El comando hadoop está en desuso:

 hdfs dfsadmin -safemode leave 

hadoop dfsadmin ha quedado obsoleto y también lo es el comando hadoop fs , todas las tareas relacionadas con hdfs se están moviendo a un comando separado hdfs .

prueba esto, funcionará

 sudo -u hdfs hdfs dfsadmin -safemode leave 

El comando no funcionó para mí, pero el siguiente hizo

 hdfs dfsadmin -safemode leave 

hdfs comando hdfs lugar del comando hadoop .

Consulte http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-in-readonly-mode-and-errors-out-with-Name-node-is-in-safe- modo de enlace también

Si usa la versión 2.6.1 de Hadoop 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 mágicamente falla cuando se ejecuta en el contenedor, así que lo que hice fue esto. dfs.safemode.threshold.pct documento y encontré dfs.safemode.threshold.pct en la documentación que dice

Especifica el porcentaje de bloques que deben cumplir el requisito de replicación mínimo definido por dfs.replication.min. Los valores menores o iguales a 0 significan no esperar ningún porcentaje particular de bloques antes de salir de safemode. Los valores superiores a 1 harán que el modo seguro sea permanente.

así que cambié el hdfs-site.xml a lo siguiente (En versiones anteriores de Hadoop, aparentemente tiene que hacerlo en hdfs-default.xml :

   dfs.safemode.threshold.pct 0   

Namenode entra en modo seguro cuando hay escasez de memoria. Como resultado, el HDFS se vuelve legible solamente. Eso significa que no se puede crear ningún directorio o archivo adicional en el HDFS. Para salir del safemode, se usa el siguiente comando:

 hadoop dfsadmin -safemode leave 

Si usa cloudera manager:

 go to >>Actions>>Leave Safemode 

Pero no siempre resuelve el problema. La solución completa radica en hacer espacio en la memoria. Use el siguiente comando para verificar el uso de su memoria.

 free -m 

Si está usando cloudera, también puede verificar si el HDFS muestra algunos signos de mala salud. Probablemente debe mostrar algún problema de memoria relacionado con el namenode. Asigna 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 forma. ¡Espero eso ayude! 🙂

Prueba esto

 sudo -u hdfs hdfs dfsadmin -safemode leave 

verificar el estado de safemode

 sudo -u hdfs hdfs dfsadmin -safemode get 

Si todavía está en modo seguro, una de las razones sería que no hay espacio suficiente en su nodo, puede verificar el uso del disco de su nodo usando:

 df -h 

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.

Ejecute el siguiente comando utilizando el usuario del sistema operativo HDFS para deshabilitar el modo seguro:

 sudo -u hdfs hadoop dfsadmin -safemode leave 

use el comando a continuación para desactivar el modo seguro

$> hdfs dfsadmin -safemode leave