Foro Formación Hadoop
Error: No se encuentra el directorio formacionhadoop en HDFS
Buenos días,
A continuación os indico una consulta que nos ha realizado uno de los alumnos del Master Experto Big Data:
Estoy con el primer ejercicio y tengo el siguiente problema: en la VM de cloudera, cuando intento subir un directorio a /formacionhadoop como describe el ejercicio, ni el directorio /formacionhadoop existe ni lo puedo crear porque no tengo permisos:
put: `/formacionhadoop/desarrollador/': No such file or directory
[cloudera@quickstart datasets]$ hadoop fs -ls /formacionhadoop/
ls: `/formacionhadoop/': No such file or directory
[cloudera@quickstart datasets]$ hadoop fs -mkdir /formacionhadoop/
mkdir: Permission denied: user=cloudera, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
Si lo intento subir a mi home del hdfs donde sí que tengo permisos, me sale la siguiente excepción muchas veces:
16/10/25 12:03:31 WARN hdfs.DFSClient: Caught exception java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Thread.join(Thread.java:1281)
at java.lang.Thread.join(Thread.java:1355)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.closeResponder(DFSOutputStream.java:862)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.endBlock(DFSOutputStream.java:600)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:789)
¿Cómo resuelvo este problema?
Efectivamente, el directorio formacionhadoop no existe (es un directorio de ejemplo para seguir unas directrices en los ejercicios). Si quieres seguir las instrucciones tal cual puedes crearlo, si no, utiliza el /tmp.
Para tener permisos puedes ejecutar:
sudo -u hdfs hadoop fs -mkdir /formacionhadoop
Comprueba que tienes los servicios de HDFS levantados(Namenode y datando).
- Para probar esto rápidamente, puedes indicar el comando: sudo jps -m
Ese comando muestra un listado de los procesos Java que se están ejecutando en la máquina y entre ellos debería aparecer "NameNode" y "DataNode".
Si se sigue produciendo el error, o hay algún servicio caído, se debe realizar un reinicio de los servicios de HDFS.
Respuesta del alumno:
Me seguí fallando el put, pero luego en el cloudera manager he visto que el HDFS estaba con errores, así que le he reiniciado y ya me ha dejado subirlo.
Para modificar los permisos de los directorios de HFS se pueden utilizar los comando siguientes:
Cambio de permisos:
sudo -u hdfs hadoop fs -chmod 777 /formacionhadoop
El comando anterior cambia los permisos al directorio formacionhadoop dando acceso a TODOS los usuarios a ese directorio (esto es debido al 777, es posible indicar otra serie de servicios igual que en un sistema UNIX).
Cambio de usuario y grupo:
sudo -u hdfs hadoop fs -chown usuario:grupo /formacionhadoop
Con el comando anterior podríamos indicar/modificar el usuario y grupo al directorio (se debería cambiar las palabras usuario y grupo por los valores correspondientes).
Para más información sobre las operaciones que podemos realizar en HDFS podemos poner el comando:
hadoop fs
El comando anterior mostrará un listado con las opciones de todos los comandos/instrucciones que podemos realizar sobre el HDFS con el cliente de Hadoop (hadoop fs).
Redes sociales