tutorial pig permissions hadoop apache-pig hdfs

permissions - tutorial - Problema de permisos de Apache Pig



apache pig tutorial (2)

Un problema podría ser que hadoop.tmp.dir es un directorio en su sistema de archivos local, no HDFS. Intenta establecer esa propiedad en un directorio local al que sabes que tienes acceso de escritura. Me encontré con el mismo error al usar MapReduce en Hadoop.

Estoy intentando ejecutar Apache Pig en mi clúster de Hadoop, y estoy encontrando un problema de permisos. El propio cerdo está lanzando y conectando al clúster, desde dentro de la estructura de Pig, puedo recorrer mis directorios de HDFS. Sin embargo, cuando intento cargar datos y ejecutar comandos Pig, me encuentro con errores relacionados con permisos:

grunt> A = load ''all_annotated.txt'' USING PigStorage() AS (id:long, text:chararray, lang:chararray); grunt> DUMP A; 2011-08-24 18:11:40,961 [main] ERROR org.apache.pig.tools.grunt.Grunt - You don''t have permission to perform the operation. Error from the server: org.apache.hadoop.security.AccessControlException: Permission denied: user=steven, access=WRITE, inode="":hadoop:supergroup:r-xr-xr-x 2011-08-24 18:11:40,977 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1066: Unable to open iterator for alias A Details at logfile: /Users/steven/Desktop/Hacking/hadoop/pig/pig-0.9.0/pig_1314230681326.log grunt>

En este caso, all_annotated.txt es un archivo en mi directorio personal de HDFS que creé, y definitivamente tengo permisos para; el mismo problema ocurre sin importar qué archivo intento load . Sin embargo, no creo que ese sea el problema, ya que el error mismo indica que Pig está tratando de escribir en alguna parte. Buscando en Google, encontré algunas publicaciones en listas de correo que sugieren que ciertas afirmaciones de Pig Latin ( order , etc.) necesitan acceso de escritura a un directorio temporal en el sistema de archivos HDFS cuya ubicación está controlada por la propiedad hadoop.tmp.dir en hdfsd-site .xml. No creo que la load en esa categoría, pero solo para estar seguros, cambié hadoop.tmp.dir para que apunte a un directorio dentro de mi directorio personal HDFS, y el problema persiste.

Entonces, ¿alguien tiene alguna idea de lo que podría estar pasando?


Probablemente su configuración pig.temp.dir. Su valor predeterminado es / tmp en hdfs. Pig escribirá el resultado temporal allí. Si no tiene permiso para / tmp, Pig se quejará. Intente anularlo por -Dpig.temp.dir.