Win7环境下通过Eclipse连接Hadoop1.2.1集群时,会遇到如下报错:
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
此时只需要修改org.apache.hadoop.fs.FileUtil文件并重新编译即可,简单解决步骤如下:
1.到源码中拷贝src/core/org/apache/hadoop/fs/FileUtil.java文件,粘贴到eclipse工程目录下
4.找到以下部分,注释掉checkReturnValue方法中的代码
private static void checkReturnValue(boolean rv, File p,
FsPermission permission
) throws IOException {
/*
//win7 connect to linux hadoop
if (!rv) {
throw new IOException("Failed to set permissions of path: " + p +
" to " +
String.format("%04o", permission.toShort()));
}
*/
}
5.hadoop-core-1.2.1.jar 解包
6.用上面更改的FileUtil.class(在工程输出目录)覆盖包里面的同文件
6.在dos上面重新打包,打包之替换原来拷贝下来hadoop目录里面的hadoop-core-1.2.1.jar
7.将包重新导入工程,把工程里面的包替换掉
INFO mapred.JobClient: Cleaning up the staging area file:/tmp/hadoop-hadoop/mapred/staging/hadoop-2103292795/.staging/job_local_0001