【甘道夫】win7环境下eclipse连接hadoop1.2.1报错简单解决:重编译FileUtil.java

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.eclipse中新建java工程
2.将hadoop相关jar包都导入工程
3.到源码中拷贝src/core/org/apache/hadoop/fs/FileUtil.java文件,粘贴到eclipse工程的src目录下
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.到工程的输出目录找到class文件,会有两个class文件,因为 FileUtil.java有内部类
6.将该class文件添加到hadoop-core-1.2.1.jar中对应的目录,覆盖原文件
7.将更新过的 hadoop-core-1.2.1.jar拷贝到Hadoop集群,覆盖原有文件, 重启Hadoop集群
8.将 更新过的 hadoop-core-1.2.1.jar添加到项目的依赖中,如果用到Maven可能涉及覆盖Maven库中的对应文件
9.运行程序,万事大吉!!!

你可能感兴趣的:(【甘道夫】win7环境下eclipse连接hadoop1.2.1报错简单解决:重编译FileUtil.java)