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