hadoop猪脚本的权限错误

问题描述:

我已经建立了一个hadoop集群,它运行的很好。最重要的是,我正在使用猪脚本。hadoop猪脚本的权限错误

不过,我发现了以下错误:

org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=tavasthi, access=WRITE, inode="home":dsslmn:supergroup:rwxr-xr-x 

能有人给和指针,以纠正这个错误? 在此先感谢。

看起来你没有HDFS的权限来保存到文件夹home。您的用户tavasthi不是用户dsslmn,因此无权写入home文件夹(rwxr-xr-x表示只有用户具有写入权限)。

你可以发布你想要使用pig STORE命令的代码,以包含路径,并告诉我们这个输出文件夹的路径是否存在,以及你的用户是否有权写入它。

+0

我在使用dump命令并将其重定向到我的unix文件系统。所以,我现在不是在处理猪的商店命令。 – 2012-04-25 11:02:24

+0

我认为转储仍然在HDFS上创建一个文件,然后它将内容流式传输到标准输出。 – 2012-04-25 11:19:53

+0

它为什么试图写入主目录。有人可以指出哪些财产要解决这里。 我试着改变pig.temp.dir =/tmp,但它仍然试图访问home inode。 – 2012-04-27 09:33:56

我能够通过使用安全的模拟功能 http://hadoop.apache.org/common/docs/stable/Secure_Impersonation.html

在此之后的代码片断

UserGroupInformation ugi = 
        UserGroupInformation.createProxyUser("hduser", UserGroupInformation.getLoginUser()); 
      ugi.doAs(new PrivilegedExceptionAction<Void>() { 
       public Void run() throws Exception { 
        Configuration jobconf = new Configuration(); 
     jobconf.set("fs.default.name", "hdfs://server:hdfsport"); 
     jobconf.set("hadoop.job.ugi", "hduser"); 
     jobconf.set("mapred.job.tracker", "server:jobtracker port"); 
       String[] args = new String[] { "data/input", "data/output" }; 
       ToolRunner.run(jobconf, WordCount.class.newInstance(), args); 
        return null; 
       } 
      }); 

登录用户ID的远程(在我的情况下windows桌面主机)应被添加到解决类似的问题, core-site.xml如上所述in the URL