hadoop hdfs cloudera

¿Por qué falla "hadoop fs-mkdir" con el permiso denegado?



hdfs cloudera (4)

Estoy usando Cloudera en una máquina de VM con la que estoy jugando. Lamentablemente, tengo problemas para copiar datos en HDFS, obtengo lo siguiente:

[cloudera@localhost ~]$ hadoop fs -mkdir input mkdir: Permission denied: user=cloudera, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

No estoy demasiado preocupado por la seguridad en esta máquina virtual, ¿de todos modos puedo abrir más seguridad en HDFS?


Cuando ejecutas el comando anterior, si el directorio principal de hdfs (/ user / cloudera) no está allí, entonces ese directorio se creará primero y luego se creará la entrada del directorio en / user / cloudera.

Para dar permiso al usuario de cloudera para que cree su propio directorio, debes dar permiso. el usuario de hdfs es el usuario administrador en hdfs, cambia a hdfs y luego ejecuta el siguiente comando

[hdfs@localhost~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777 /user/cloudera

O

Si no está demasiado preocupado por la seguridad de hdfs, deshabilite el permiso de HDF estableciendo la propiedad siguiente como falsa en hdfs-site.xml

<property> <name>dfs.permissions.enabled</name> <value>false</value> </property>

después de establecer esta propiedad en hdfs falso, debe reiniciarse.


El uso de mkdir en hadoop necesita los "permisos del archivo hadoop". En su ejemplo, puede ver que hdfs es un usuario que tiene permisos para crear carpetas. Entonces si corres:

sudo -u hdfs hadoop fs -mkdir /import

luego se creará la carpeta de import . Si desea cambiar el propietario de esta carpeta, ejecute:

sudo -u hdfs hadoop fs -chown new_user /import

Ahora el usuario_new puede manipular archivos dentro de la carpeta de import


En cloudera manager, puede cambiar las configuraciones: hdfs-> configuration-> view & edit, desmarque Verificar permisos de HDFS dfs.permissions y reinicie los hdfs.


Resolví el problema creando un supergrupo en /etc/group y actualicé los inicios de sesión del usuario en él. Quiero decir que el usuario debe ser parte del supergrupo HDFS para tener acceso a escribir en HDFS.

$vi /etc/group

supergroup:x:30000:root

Más tarde pudo escribir en HDFS. Espero eso ayude