windows eclipse运行mapreduce遇到权限问题该如何解决
本帖最后由 nettman 于 2014-5-10 01:54 编辑问题导读:
1.对于hadoop开发方式总,采用本地引入包的开发方式,会遇到什么问题,该如何解决?
static/image/hrline/4.gif
根据hadoop开发方式总结及操作指导,
http://www.aboutyun.com/data/attachment/album/201402/20/234947d0555mfmjmwgzfhm.jpg
采用第一种开发方式,我们会遇到权限问题,面对这个问题,该如何解决,有两种解决办法:
第一种解决办法:
1、重新编译hadoop-core-xxx.jar包1. 原因 当用hadoop中自带的hadoop-core-xxx.jar包时,会出现UserGroupInformation类型的错误,这个是Windows下文件权限问题,在Linux下可以正常运行。
2. 解决方案 修改/hadoop-xxx/src/core/org/apache/hadoop/fs/FileUtil.java里的checkReturnValue,注释掉其中代码即可,重新编译后替换原hadoop-core-xxx.jar包中FileUtil.java,再替换掉hadoop-xxx根目录下的hadoop-core-xxx.jar即可。
修改前:
private static void checkReturnValue(boolean rv, File p,
FsPermission permission
) throws IOException {
if (!rv) {
throw new IOException("Failed to set permissions of path: " + p +
" to " +
String.format("%04o", permission.toShort()));
}
}修改后:
private static void checkReturnValue(boolean rv, File p,
FsPermission permission
) throws IOException {
}被修改后FileUtil.java文件
第二种解决办法:将下面附件中的文件拖入项目中,与源码中的core包发生冲突,不过不影响运行
补充另外一种权限问题:原文:hadoop常见错误汇总及解决办法一
用window 提交eclipse 任务发现权限不通过:
原因:本地用户administrator(本机windows用户)想要远程操作hadoop系统,没有权限引起的。
解决办法:
1、如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。(1.2.1 版本只有这个方法可行),如何操作可以参考第一个问题。
http://www.aboutyun.com/data/attachment/forum/201403/05/233709ge5z1k0icd330nkd.png
2、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可
3 修改window 机器的用户名为 hadoop 用户名。
以前遇到过这个问题,受教了 遇到了这种问题,学习了 {:soso_e179:} 学习一下!!! 之前碰到过这个问题,改掉了FileUtil类。
涨姿势了,感谢 感谢楼主分享
页:
[1]