本帖最后由 nettman 于 2014-5-10 01:54 编辑
问题导读:
1.对于hadoop开发方式总,采用本地引入包的开发方式,会遇到什么问题,该如何解决?
根据hadoop开发方式总结及操作指导,
采用第一种开发方式,我们会遇到权限问题,面对这个问题,该如何解决,有两种解决办法:
第一种解决办法:
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文件
FileUtil.zip
(6.41 KB, 下载次数: 84)
|