windows下使用Eclipse運行MapReduce程序出錯: Failed to set...

在windows下用Eclipse運行MapReduce程序會報錯:java

12/04/24 15:32:44 WARN util.NativeCodeLoader: Unable to load native-hadoop     library for your platform... using builtin-java classes where applicable
12/04/24 15:32:44 ERROR security.UserGroupInformation:     PriviledgedActionException as:Administrator cause:java.io.IOException: Failed to set     permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-    519341271\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700

這個問題在網上很常見了, 搜下有不少, 緣由和解決方案:apache

這個是Windows下文件權限問題,在Linux下能夠正常運行,不存在這樣的問題。windows

解決方法是將hadoop-x.x.x/src/core/org/apache/hadoop/fs/FileUtil.java裏面方法checkReturnValue的代碼註釋掉.app

再從新編譯生成hadoop-x.x.x-core.jar.oop

關鍵問題是怎麼從新編譯? 因而網上找怎麼編譯Hadoop的方法, 原本一個很簡單的問題弄了好久都沒解決掉.ui

其實方法很簡單, 不用從新編譯Hadoop, 僅編譯FileUtil.java便可.code

新建一個MapReduce項目, 把hadoop-x.x.x/src/core/org/apache/hadoop/fs/FileUtil.java代碼複製到src下(注意, 目錄結構也須要), 按上面修改文件, 而後從新build下, 找到編譯好的.class(兩個), 用解壓軟件打開hadoop-x.x.x-core.jar, 把這兩個class文件覆蓋便可.orm

相關文章
相關標籤/搜索