pig2 发表于 2014-5-9 23:57:51

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包发生冲突,不过不影响运行












chenabc 发表于 2014-5-10 00:53:49

补充另外一种权限问题:原文: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 用户名。


zhujun182104906 发表于 2014-11-29 09:46:56

以前遇到过这个问题,受教了

tang 发表于 2015-4-1 22:00:29

遇到了这种问题,学习了

tang 发表于 2015-4-2 16:37:16

{:soso_e179:}

蒲公英_gJM1Z 发表于 2015-4-13 09:32:33

学习一下!!!

zhao_yi_bing 发表于 2015-4-30 09:20:59

之前碰到过这个问题,改掉了FileUtil类。
涨姿势了,感谢

麦克布鲁斯 发表于 2016-12-24 22:28:52

感谢楼主分享
页: [1]
查看完整版本: windows eclipse运行mapreduce遇到权限问题该如何解决