Permissions hadoop上pig脚本的权限错误
我已经安装了一个hadoop集群,它运行得很好。最重要的是,我正在使用pig脚本 但是,我得到了以下错误:Permissions hadoop上pig脚本的权限错误,permissions,hadoop,apache-pig,Permissions,Hadoop,Apache Pig,我已经安装了一个hadoop集群,它运行得很好。最重要的是,我正在使用pig脚本 但是,我得到了以下错误: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=tavasthi, access=WRITE, inode="home":dsslmn:supergroup:rwxr-xr-x 有人能给出纠正这个错误的建议吗?
org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=tavasthi, access=WRITE, inode="home":dsslmn:supergroup:rwxr-xr-x
有人能给出纠正这个错误的建议吗?
提前感谢。看起来您在HDFS中没有保存到文件夹
主页的权限。您的用户,Tavashi
不是用户dsslmn
,因此没有写入主文件夹的权限(rwxr-xr-x
表示只有用户具有写入权限)
您能否在尝试使用pig STORE命令的地方发布代码,以包含路径,并让我们知道此输出文件夹的路径是否存在,以及您的用户是否具有写入该文件夹的权限。我可以通过使用安全模拟功能解决类似问题
遵循以下代码段
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;
}
});
UserGroupInformation-ugi=
UserGroupInformation.createProxyUser(“hduser”,UserGroupInformation.getLoginUser());
ugi.doAs(新特权接受行动){
public Void run()引发异常{
Configuration jobconf=new Configuration();
jobconf.set(“fs.default.name”hdfs://server:hdfsport");
jobconf.set(“hadoop.job.ugi”、“hduser”);
jobconf.set(“mapred.job.tracker”,“服务器:jobtracker端口”);
字符串[]args=新字符串[]{“数据/输入”,“数据/输出”};
运行(jobconf,WordCount.class.newInstance(),args);
返回null;
}
});
远程(在我的情况下是windows桌面主机)登录用户id应添加到core site.xml
中,如前所述我正在使用dump命令并将其重定向到我的unix文件系统。所以,公平地说,我现在没有在pig中处理store命令。我认为dump仍然会在HDFS上创建一个文件,然后将内容流式传输到您的标准输出。为什么它要尝试在主目录上写入。有人能给点建议,在这里修复哪个属性吗。我尝试更改pig.temp.dir=/tmp,但它仍在尝试访问home inode。您好,我已经修复了这个错误。显然,我使用/home/{user.name}/hadoop/tmp作为hadoop.tmp.dir的临时存储目录。您的“in the URL”链接已失效,您是否有类似的链接?