para - DataNode no se inicia en singlenode hadoop 2.6.0
hadoop standalone (10)
Instalé hadoop 2.6.0 en mi computadora portátil con Ubuntu 14.04LTS. Comencé con éxito los demonios de start-all.sh
ejecutando start-all.sh
y start-all.sh
un ejemplo de WourdCount
éxito, luego traté de ejecutar un ejemplo de jar que no funcionó conmigo, así que decido formatear usando el formato hadoop namenode -format
y comenzar de nuevo otra vez, pero cuando comienzo a todos los demonios usando start-dfs.sh && start-yarn.sh
entonces jps all daemons se ejecuta pero no el datanode como se muestra a continuación:
hdferas@feras-Latitude-E4310:/usr/local/hadoop$ jps
12628 NodeManager
12110 NameNode
12533 ResourceManager
13335 Jps
12376 SecondaryNameNode
¿Cómo resolver eso?
El problema anterior se produjo debido al formato del namenode (hadoop namenode -format) sin detener los dfs y los daemons de hilo. Mientras se forma el namenode, aparece la pregunta que aparece a continuación y presiona la tecla Y para esto. ¿Volver a formatear el sistema de archivos en el Directorio de almacenamiento / tmp / hadoop-root / dfs / name? (S o N)
Solución: debe eliminar los archivos dentro del directorio actual (nombre de directorio) de dfs.name.dir, que menciona en hdfs.site.xml. En mi sistema dfs.name.dir está disponible en / tmp / hadoop-root / dfs / name / current. rm -r / tmp / hadoop-root / dfs / name / current Usando el comentario anterior, eliminé los archivos dentro del directorio actual. Asegúrese de que solo está eliminando el directorio "actual". Vuelva a formatear el namenode después de detener los dfs y los daemons de hilo (stop-dfs.sh & stop-yarn.sh). Ahora datanode se iniciará normalmente !!
Estoy usando hadoop-2.6.0. Resolví usando:
1.Borrar todos los archivos en / usr / local / hadoop_store / hdfs
comando: sudo rm -r / usr / local / hadoop_store / hdfs / *
2.Format hadoop namenode
comando: hadoop namenode -format
3. Vaya al directorio ... / sbin (cd / usr / local / hadoop / sbin)
start-all.sh
- use el comando ==> hduser @ abc-3551: / $ jps
Los siguientes servicios se iniciarían ahora:
19088 Jps
18707 ResourceManager
19043 NodeManager
18535 SecondaryNameNode
18329 DataNode
18159 NameNode
He enfrentado este problema y es muy fácil de resolver. Su datanode no se está iniciando porque después de que su namenode y datanode comenzaron a ejecutarse, formatearon nuevamente el namenode. Eso significa que ha borrado los metadatos de namenode. Ahora los archivos que ha almacenado para ejecutar el recuento de palabras aún están en el nodo de datos y el nodo de datos no tiene idea de dónde enviar los informes de bloque, ya que usted formateó el namenode para que no se inicie.
Estas son las cosas que debe hacer para solucionarlo. Detenga todos los servicios de Hadoop (stop-all.sh) y cierre todas las conexiones ssh activas.
cat /usr/local/hadoop/etc/hadoop/hdfs-site.xml
Este paso es importante, vea dónde se almacenan los datos de datanode. Es el valor asociado para datanode.data.dir. Para mí es / usr / local / hadoop / hadoop_data / hdfs / datanode. Abra su terminal y navegue hasta el directorio anterior y elimine el directorio denominado actual que estará allí debajo de ese directorio. Asegúrese de que solo está eliminando el directorio "actual".
sudo rm -r /usr/local/hadoop/hadoop_data/hdfs/datanode/current
Ahora formatee el namenode y verifique si todo está bien.
hadoop namenode -format
Di que si te pide algo.
jps
Espero que mi respuesta resuelva el problema. Si no me lo hace saber.
Pequeño consejo: No formatees tu namenode. Sin namenode no hay manera de reconstruir los datos. Si tu cuenta de palabras no se está ejecutando, es otro problema.
Incluso tuve el mismo problema y verifiqué el registro y encontré el siguiente error
Excepción - Datanode log FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Excepción en secureMain java.io.IOException: Todos los directorios en dfs.datanode.data.dir no son válidos: "/ usr / local / hadoop_store / hdfs / datanode /
Ejecute el siguiente comando para resolver el problema
sudo chown -R hduser: hadoop / usr / local / hadoop_store
Nota: he creado el namenode y el datanode en la ruta / usr / local / hadoop_store
No es la forma correcta de hacerlo. pero seguramente funciona ~
elimine archivos de su carpeta de datanode, namenode y tmp. cualquier archivo / carpeta creado dentro de estos es propiedad de hadoop y puede tener alguna referencia a los detalles del último nodo de datos de ejecución que pueden haber fallado o bloqueado debido a que el nodo de datos no inicia el siguiente intento
Solo necesita eliminar todo el contenido de la carpeta DataNode y formatear el Datanode usando el siguiente comando
hadoop namenode -format
Tengo el mismo problema ( DataNode y TaskTracker no aparecerían ).
RESOLUCIÓN: ELIMINE CADA SUB DIRECTORIO "ACTUAL" BAJO: datos, nombre y nombre de segundo para resolver DataNode / taskTracker que no se muestra cuando inicia-all.sh, luego jps
(Mi ubicación en dfs.name.dir es: / home / training / hadoop-temp / dfs / data / current; / home / training / hadoop-temp / dfs / name / current; / home / training / hadoop-temp / dfs / nombresecundaria / actual
Asegúrate de detener los servicios: stop-all.sh
1. Vaya a cada subdirectorio "actual" debajo de datos, nombre, nombre de segundo y elimine / elimine (ejemplo: rm -r nombre / actual)
2. Luego formatea: hadoop namenode -format
3. mkdir current en / home / training / hadoop-temp / dfs / data / current
4. Tome el directorio y los contenidos de / home / training / hadoop-temp / dfs / name / current y cópielos en el directorio / data / current
EJEMPLO: archivos bajo:
/ home / training / hadoop-temp / dfs / name / current
[entrenamiento @ CentOS actual] $ ls -l
-rw-rw-r--. 1 entrenamiento entrenamiento 9901 sep 25 01:50 ediciones
-rw-rw-r--. 1 entrenamiento entrenamiento 582 sep 25 01:50 fsimage
-rw-rw-r--. 1 entrenamiento entrenamiento 8 sep 25 01:50 fstime
-rw-rw-r--. 1 entrenamiento entrenamiento 101 sep 25 01:50 VERSIÓN
5. Cambie storageType = NAME_NODE en VERSION a storageType = DATA_NODE en los datos / current / VERSION que acaba de copiar.
ANTES DE:
[training @ CentOS dfs] $ cat data / current / VERSION
namespaceID = 1018374124
cTime = 0
storageType = NAME_NODE
layoutVersion = -32
DESPUÉS:
[training @ CentOS dfs] $ cat data / current / VERSION
namespaceID = 1018374124
cTime = 0
storageType = DATA_NODE
layoutVersion = -32
6. Asegúrese de que cada subdirectorio a continuación tenga los mismos archivos que nombre / actual tiene para los datos, nombre, nombre de segundo nombre
[training @ CentOS dfs] $ pwd
/ home / training / hadoop-temp / dfs /
[training @ CentOS dfs] $ ls -l
total 12
drwxr-xr-x. 5 entrenamiento entrenamiento 4096 sep 25 01:29 datos
drwxrwxr-x. 5 entrenamiento entrenamiento 4096 sep 25 01:19 nombre
drwxrwxr-x. 5 entrenamiento entrenamiento 4096 sep 25 01:29 namesecondary
7. Ahora inicie los servicios: start-all.sh Debe ver los 5 servicios cuando escribe: jps
Tuve este problema al formatear namenode también. Lo que hice para resolver el problema fue:
- Encuentra tu ubicación
dfs.name.dir
. Consideremos, por ejemplo, quedfs.name.dir
es/home/hadoop/hdfs
.
(a) Ahora vaya a, /home/hadoop/hdfs/current
.
(b) Busca el archivo VERSION
. Ábrelo usando un editor de texto.
(c) Habrá una línea namespaceID=122684525
(122684525 es mi ID, la suya será diferente). Anote la identificación hacia abajo.
- Ahora encuentra tu ubicación
hadoop.tmp.dir
. El mío es/home/hadoop/temp
.
(a) Vaya a /home/hadoop/temp/dfs/data/current
.
(b) Busque el archivo VERSION
y ábralo con un editor de texto.
(c) Habrá una línea namespaceID=
. El ID de espacio de nombres en este archivo y el anterior debe ser el mismo.
(d) Esta es la razón principal por la que no se inició mi datanode. Los hice ambos iguales y ahora datanode comienza bien.
Nota: copie el namespaceID de
/home/hadoop/hdfs/current/VERSION
a/home/hadoop/temp/dfs/data/current/VERSION
. No lo hagas al revés.
- Ahora haga
start-dfs.sh && start-yarn.sh
. Se iniciará Datanode.
agregue la siguiente propiedad en yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
en core-site.xml compruebe la ruta absoluta del directorio temporal, si esto no se apunta correctamente o no se crea (mkdir). El nodo de datos no se puede iniciar.