hadoop - tag - Namenode no se está iniciando
tag del amor preguntas (21)
Estaba usando Hadoop en un modo pseudo-distribuido y todo funcionaba bien. Pero luego tuve que reiniciar mi computadora por algún motivo. Y ahora, cuando intento iniciar Namenode y Datanode, solo puedo encontrar Datanode en ejecución. ¿Alguien podría decirme la posible razón de este problema? ¿O estoy haciendo algo mal?
Intenté bin/start-all.sh
y bin/start-dfs.sh
.
¿Cambió conf/hdfs-site.xml
dfs.name.dir
?
Formatee namenode después de cambiarlo.
$ bin/hadoop namenode -format
$ bin/hadoop start-all.sh
¿Por qué la mayoría de las respuestas aquí suponen que todos los datos deben ser borrados, reformateados y luego reiniciar Hadoop? ¿Cómo sabemos que namenode no está progresando, sino que requiere mucho tiempo? Hará esto cuando haya una gran cantidad de datos en HDFS. Verifique el progreso en los registros antes de asumir que algo está colgado o atascado.
$ [kadmin@hadoop-node-0 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%)
Esto fue después de casi una hora de espera en un sistema en particular. Todavía está progresando cada vez que lo miro. Ten paciencia con Hadoop cuando abras el sistema y revises los registros antes de asumir que algo está colgado o no avanza.
Abra un nuevo terminal e inicie el namenode usando path-to-your-hadoop-install / bin / hadoop namenode
El control usando jps y namenode debería estar ejecutándose
Agregue la propiedad hadoop.tmp.dir en 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>
y formatear hdfs (hadoop 2.7.1):
$ hdfs namenode -format
El valor predeterminado en core-default.xml es /tmp/hadoop-${user.name}, que se eliminará después del reinicio.
Después de eliminar una carpeta de datos de los administradores de recursos, el problema desapareció.
Incluso si tiene formato, no puede resolver este problema.
El siguiente STEPS me funcionó con hadoop 2.2.0,
PASO 1 parada hadoop
hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh
PASO 2 eliminar la carpeta tmp
hduser@prayagupd$ sudo rm -rf /app/hadoop/tmp/
PASO 3 crear / app / hadoop / tmp /
hduser@prayagupd$ sudo mkdir -p /app/hadoop/tmp
hduser@prayagupd$ sudo chown hduser:hadoop /app/hadoop/tmp
hduser@prayagupd$ sudo chmod 750 /app/hadoop/tmp
Namenode de formato de PASO 4
hduser@prayagupd$ hdfs namenode -format
PASO 5 comienza dfs
hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh
PASO 6 verificar jps
hduser@prayagupd$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode
En conf / hdfs-site.xml, debe tener una propiedad como
<property>
<name>dfs.name.dir</name>
<value>/home/user/hadoop/name/data</value>
</property>
La propiedad "dfs.name.dir" le permite controlar dónde Hadoop escribe los metadatos de NameNode. Y al darle otro directorio en lugar de / tmp, se asegura de que los datos de NameNode no se eliminen al reiniciar.
En 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>
y formato de namenode con:
hdfs namenode -format
trabajado para hadoop 2.8.1
En lugar de formatear namenode, puede usar el siguiente comando para reiniciar el namenode. Funcionó para mí:
sudo service hadoop-master restart
- hadoop dfsadmin -safemode deja
Enfrentado con el mismo problema.
(1) Siempre verifique los errores de tipeo en la configuración de los archivos .xml
, especialmente las etiquetas xml.
(2) ir a bin dir. y escriba ./start-all.sh
(3) escriba jps
para verificar si los procesos están funcionando
Estaba enfrentando el problema de que namenode no comenzara. Encontré una solución usando lo siguiente:
- primero borre todo el contenido de la carpeta temporal:
rm -Rf <tmp dir>
(mi fue / usr / local / hadoop / tmp) - formatee el namenode:
bin/hadoop namenode -format
- inicie todos los procesos nuevamente:
bin/start-all.sh
También puede considerar retroceder utilizando el punto de control (si lo tuvo habilitado).
Me encontré con lo mismo después de un reinicio.
para hadoop-2.7.3 todo lo que tuve que hacer fue formatear el namenode:
<HadoopRootDir>/bin/hdfs namenode -format
Entonces un comando jps muestra
6097 DataNode
755 RemoteMavenServer
5925 NameNode
6293 SecondaryNameNode
6361 Jps
Para mí, lo siguiente funcionó después de haber cambiado el directorio de namenode y datanode en hdfs-site.xml
- Antes de ejecutar los siguientes pasos, detenga todos los servicios con stop-all.sh
o en mi caso use stop-dfs.sh
para detener el dfs
- En el nuevo directorio configurado, para cada nodo (namenode y datanode), elimine todas las carpetas / archivos dentro de él (en mi caso un directorio ''actual'').
- elimine el directorio temporal de Hadoop:
$rm -rf /tmp/haddop-$USER
- formatee el Namenode:
hadoop/bin/hdfs namenode -format
-
start-dfs.sh
Después de seguir esos pasos mi namenode y los nodos de datos estaban vivos usando el nuevo directorio configurado.
Prueba esto,
1) Detenga todos los procesos de stop-all.sh
: stop-all.sh
2) Retire la carpeta tmp manualmente
3) Formato namenode: hadoop namenode -format
4) Comience todos los procesos: start-all.sh
Si alguien usa la versión de hadoop1.2.1 y no puede ejecutar namenode, vaya a core-site.xml
y cambie dfs.default.name
a fs.default.name
.
Y luego formatee el namenode usando $hadoop namenode -format
.
Finalmente, ejecute los archivos hdfs usando start-dfs.sh
y verifique el servicio usando jps.
Si enfrenta este problema después de reiniciar el sistema, los siguientes pasos funcionarán bien
Para la solución.
1) formatee el namenode: bin/hadoop namenode -format
2) iniciar todos los procesos de nuevo: bin/start-all.sh
Para la corrección de Perm: -
1) vaya a /conf/core-site.xml cambie fs.default.name a su personalizado.
2) formatee el namenode: bin/hadoop namenode -format
3) iniciar todos los procesos de nuevo: bin/start-all.sh
Si mantuviste las configuraciones predeterminadas al ejecutar hadoop, el puerto para el namenode sería 50070. Tendrás que encontrar cualquier proceso que se ejecute en este puerto y matarlo primero.
Detenga todo el funcionamiento de hadoop con:
bin/stop-all.sh
compruebe todos los procesos que se ejecutan en el puerto 50070
sudo netstat -tulpn | grep :50070
sudo netstat -tulpn | grep :50070
#compruebe cualquier proceso que se ejecute en el puerto 50070, si hay alguno / aparecerá en el RHS de la salida.sudo kill -9 <process_id> #kill_the_process
.sudo rm -r /app/hadoop/tmp
#delete la carpeta temporalsudo mkdir /app/hadoop/tmp
#recreate itsudo chmod 777 –R /app/hadoop/tmp
(777 se da solo para este propósito de ejemplo)bin/hadoop namenode –format
-format #format hadoop namenodebin/start-all.sh
# start-all servicios de hadoop
Referir este blog
Si su namenode está atascado en modo seguro, puede enviarlo a namenode, a su hdfs
usuario su hdfs
y ejecutar el siguiente comando para desactivar safemode:
hdfs dfsadmin -fs hdfs://server.com:8020 -safemode leave
$hadoop namenode
para iniciar manualmente el namenode en primer plano.
De los registros, descubrí que 50070 está ocupado, que fue utilizado por defecto por dfs.namenode.http-address. Después de configurar dfs.namenode.http-address en hdfs-site.xml, todo salió bien.
hadoop.tmp.dir
en core-site.xml está defaulted en /tmp/hadoop-${user.name}
que se limpia después de cada reinicio. Cambie esto a algún otro directorio que no se limpia al reiniciar.
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