我已经设置了一个hadoop集群,它运行得非常好。最重要的是,我正在使用猪脚本。
但是我收到以下错误:
org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=tavasthi, access=WRITE, inode="home":dsslmn:supergroup:rwxr-xr-x
有人可以给出指示来纠正这个错误吗? 提前谢谢。
答案 0 :(得分:0)
您似乎没有HDFS权限可以保存到文件夹home
。您的用户tavasthi
不是用户dsslmn
,因此无权写入home
文件夹(rwxr-xr-x
表示只有用户具有写入权限)。
您可以将代码发布到您尝试使用pig STORE命令的位置,以包含路径,并告诉我们此输出文件夹的路径是否存在,以及您的用户是否具有写入该权限的权限。 / p>
答案 1 :(得分:0)
我能够通过使用安全模拟功能解决类似问题 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;
}
});
远程(在我的情况下为Windows桌面主机)登录用户ID应添加到core-site.xml
in the URL