Permissions Apache Pig权限问题

Permissions Apache Pig权限问题,permissions,hadoop,apache-pig,hdfs,Permissions,Hadoop,Apache Pig,Hdfs,我试图在Hadoop集群上启动并运行ApachePig,但遇到了权限问题。Pig本身正在启动并连接到集群——在Pig外壳中,我可以ls通过我的HDFS目录并围绕它运行。但是,当我尝试实际加载数据并运行Pig命令时,我遇到了与权限相关的错误: grunt> A = load 'all_annotated.txt' USING PigStorage() AS (id:long, text:chararray, lang:chararray); grunt> DUMP A; 2011-08

我试图在Hadoop集群上启动并运行ApachePig,但遇到了权限问题。Pig本身正在启动并连接到集群——在Pig外壳中,我可以
ls
通过我的HDFS目录并围绕它运行。但是,当我尝试实际加载数据并运行Pig命令时,我遇到了与权限相关的错误:

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> 
在本例中,
all_annotated.txt
是我创建的HDFS主目录中的一个文件,并且绝对有权访问;无论我尝试
加载哪个文件
,都会出现相同的问题。然而,我不认为这是问题所在,因为错误本身表明Pig试图在某个地方写东西。在谷歌上搜索,我发现了一些邮件列表帖子,建议某些Pig拉丁语句(
order
,等等)需要对HDFS文件系统上的临时目录进行写访问,该目录的位置由hdfsd-site.xml中的
hadoop.tmp.dir
属性控制。我不认为
load
属于这一类,但为了确保这一点,我将
hadoop.tmp.dir
更改为指向我的HDFS主目录中的一个目录,问题仍然存在


那么,有没有人对可能发生的事情有什么想法?

问题可能是,
hadoop.tmp.dir
是本地文件系统上的一个目录,而不是HDFS。尝试将该属性设置为您知道有写入权限的本地目录。我在Hadoop中使用常规MapReduce时遇到了相同的错误。

可能是您的pig.temp.dir设置。它默认为hdfs上的/tmp。猪会在那里写临时结果。如果您没有/tmp的权限,Pig会抱怨。尝试通过-Dpig.temp.dir.覆盖它。

Huh。那么,在这种情况下,这个错误就更没有意义了。我肯定有本地文件系统上/tmp的写访问权。为了确定,我把它改回去了,问题仍然存在。我真的认为无论发生什么事都与HDFS有关。感谢您的建议,不过…
inode=“”:hadoop:supergroup:r-xr-xr-x
表示用户
hadoop
正在尝试写入HDFS目录
/
。尝试
hadoop fs-chmod 755/
,这将为
hadoop
用户添加写入权限。如果您不是以hadoop身份执行,而是在
超级组中,则可能需要使用
775
。感谢您的回复!我实际上没有“/”的权限;我不是正在使用的集群的管理员,因此我认为我无法在该级别的文件系统中对任何内容进行chmod。你知道为什么Pig会试图写入HDFS根目录吗?根据Daniel的回答,它似乎试图在HDFS中创建目录
/tmp
,因此它需要写入
/
来创建该目录。是的,就是这样!我不知道Pig有自己的tmp目录。非常感谢!对于那些在这里寻找这篇文章的人来说,这是一个很好的选择。