修改hadoop FileUtil.java,解决权限检查的问题
在Hadoop Eclipse开发环境搭建这篇文章中,第15.)中提到权限相关的异常,如下:
15/01/30 10:08:17 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/01/30 10:08:17 ERROR security.UserGroupInformation: PriviledgedActionException as:zhangchao3 cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-zhangchao3\mapred\staging\zhangchao3502228304\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-zhangchao3\mapred\staging\zhangchao3502228304\.staging to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:662)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:856)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
at org.apache.hadoop.examples.WordCount.main(WordCount.java:68)
根据提示信息,可以看到,这个异常是org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)行抛出来的,把这个位置的源代码贴出来,研究一下:
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()));
}
}
在上面的异常信息中,FileUtil.java:689行是 throw new IOException(“Failed to ….., 我直接将这个函数的if语句去掉,如下:
private static void checkReturnValue(boolean rv, File p, FsPermission permission)
throws IOException
{}
这样,chekReturnValue成为一个空函数,这样就不会对权限进行检查,在/home/hadoop/hadoop-1.0.3/中执行, ant jar进行编译,编译中可能遇到的问题见:编译hadoop遇到maven timeout ,编译好了后,生成如下的文件:

将编译好生成的hadoop-core-1.0.4-SNAPSHOT.jar文件拷贝到windows上,使用Java Decoder可以看到checkReturnValue已经被修改:

将hadoop-core-1.0.4-SNAPSHOT.jar,修改为hadoop-core-1.0.3.jar文件,覆盖eclipse工程中的hadoop-core-1.0.3.jar文件:
------》 

重新执行Run on hadoop,就可以成功的运行了。(如何执行Run on hadoop见:Hadoop Eclipse开发环境搭建 11节)
修改后的jar包下载地址:http://download.csdn.net/download/uestczhangchao/8420249
修改hadoop FileUtil.java,解决权限检查的问题的更多相关文章
- 【hadoop】——修改hadoop FileUtil.java,解决权限检查的问题
在Hadoop Eclipse开发环境搭建这篇文章中,第15.)中提到权限相关的异常,如下: 15/01/30 10:08:17 WARN util.NativeCodeLoader: Unable ...
- hadoop启动时解决权限问题
解决以上问题,使用命令:sudo chown -hR jxh-ubuntu /usr/local/hadoop
- 作死自救日记——不小心修改linux下/etc/sudoers权限的解决办法
作死自救日记,献给跟我一样不小心作了死的人 ================================================ 今天不小心作死修改了/etc/sudoers的权限,作死命 ...
- Hadoop使用Java进行文件修改删除操作
Hadoop使用Java进行文件修改删除操作 学习了:http://blog.csdn.net/menghuannvxia/article/details/44651061 学习了:http://bl ...
- hadoop 问题及解决方式
转自http://www.bkjia.com/ASPjc/931209.html 解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows ...
- [转]hadoop新手错误解决方法
解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 等一系列问题,lja ...
- hadoop常见错误解决方法
一.启动集群时 1.节点启动失败 1.1端口占用 1.1报错信息:address already in use - bind Address:50070 解决步骤: 查询端口占用:lsof -i:50 ...
- HADOOP docker(九):hdfs权限
1. 概述2. 用户身份标识3. 组映射4.关于权限的实现5.文件系统API的变更6.应用程序shell的变更7.超级用户8.ACLs9.ACL 文件系统API10.ACL命令11.参数配置12.总结 ...
- spring security 动态 修改当前登录用户的 权限
1.前言 spring security 可以获取当前登录的用户信息,同时提供了接口 来修改权限列表信息 , 使用这个方法 ,可以动态的修改当前登录用户权限. 那么问题来了... 如果我是管理员 ,如 ...
随机推荐
- Android设备广告投放解决方案——大量网络图片、多个网络视频的轮播、缓存与更新
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7742996.html 一:业务场景 基于Android系统的设备上投放广告,诸如:地铁广告屏.自助服务机器上的 ...
- MUI(拍照+系统相册)图片上传剪切预览
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Knockout JS 增加、去除、修改绑定
Knockuot js 似乎只考虑过怎么绑定(ko.applyBindings()),却没考虑过怎么去除绑定,当修改了DOM内容,需要重新绑定时,发现似乎无能为力. 一.解决办法 这里有一个重新绑定的 ...
- codevs 3083 二叉树
题目描述 Description 同学们都知道二叉树的定义,也都知道3个结点的二叉树有5种, 现给你二叉树的结点个数n,要你编程输出不同形态二叉树的种数. 输入描述 Input Description ...
- nfs远程挂载问题记录
问题描述: mount: wrong fs type, bad option, bad superblock on x.x.x.x:/xxxx_domain/update,missing codepa ...
- soa---java 多线程的---锁
如今soa 与分布式计算已经成为互联网公司技术的标配 那他包括的知识点应该熟悉了解.并以此为基础,去应用,调优各种soa的框架. 包括例如以下的四点.是分布式的基础. a java 多 ...
- 【RS】Improving Implicit Recommender Systems with View Data - 使用浏览数据提升隐式推荐系统
[论文标题]Improving Implicit Recommender Systems with View Data(IJCAI 18) [论文作者]Jingtao Ding , Guanghui ...
- FormsAuthentication.SetAuthCookie
这两天在研究 Forms 进行用户验证, 它本身没有什么上msdn上查一下就知道怎么个搞法了! 不过我在测试的时候发现也会产生 了一些疑问! 1. 什么我在web.config 的 authentic ...
- 【C语言】练习2-1
题目来源:<The C programming language>中的习题P27 练习2-1: 编写一个程序以确定分别由signed及unsigned限定的char.short.int ...
- android 蓝牙编程重点---如何发送和接收16进制数据
最近的android蓝牙开发项目也逐渐接近尾声,基本的功能都已经完成,只剩下界面的设计.现在真的是舒了一口气! 作为编程学习经验只有1年的菜鸟,这是我独自完成的商业性产品,而且还是涉及到与单片机蓝牙模 ...