WindowsでEclipseを使用してMapReduceプログラムを実行中にエラーが発生しました:Failed to set...


WindowsでEclipseでMapReduceプログラムを実行するとエラーが発生します.
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

この問題はネット上でよく見られますが、いろいろな原因と解決策があります.
これはWindowsでファイル権限の問題で、Linuxで正常に動作するという問題はありません.
解決策はhadoop-x.x.x/src/core/org/apache/hadoop/fs/FileUtil.JAvaの中の方法checkReturnValueのコードは注釈します.
再コンパイルhadoop-x.x.x-coreを生成する.jar.
重要な問題はどのように再コンパイルしますか?そこでネット上でHadoopをどのようにコンパイルする方法を探して、もともと1つのとても简単な问题は长い间すべて解决していません.
実は方法は簡単で、Hadoopを再コンパイルする必要はなく、FileUtilだけをコンパイルします.JAvaでいいです.
MapReduceプロジェクトを新規作成し、hadoop-x.x.x/src/core/org/apache/hadoop/fs/FileUtil.JAvaコードはsrcの下にコピーし(ディレクトリ構造も必要であることに注意)、上でファイルを変更し、再buildの下でコンパイルされたものを見つけます.class(2つ)は、解凍ソフトでhadoop-x.x.x-coreを開きます.JAr、この2つのclassファイルを上書きすればいいです.