2

Cygwin を介して Windows で Hadoop のサンプル ワード カウント プログラムを実行しようとしています。Hadoop と Cygwin をインストールしました。

次のステートメントを使用して wordcount プログラムを実行します。

$ bin/hadoop jar hadoop-examples-1.0.1.jar wordcount input output

次のエラーが表示されます。

12/05/08 23:05:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
12/05/08 23:05:35 ERROR security.UserGroupInformation: PriviledgedActionException as:suresh cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-suresh\mapred\staging\suresh1005684431\.staging to 0700
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-suresh\mapred\staging\suresh1005684431\.staging to 0700
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655)
        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:1093)
        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:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
        at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

パス変数に Cygwin の bin パスを設定しました。どんな助けでも大歓迎です。

4

3 に答える 3

2

これは、Hadoop の一部のバージョンの既知の問題です (完全な説明については、 https: //issues.apache.org/jira/browse/HADOOP-7682 を参照してください)。

バージョン 1.0.2 でこの問題が発生したため、他のさまざまなバージョンを試しました。

最後に、バージョン 0.22.0 に戻すことで動作するようになりました

バージョン 0.22.0 に戻す場合は、bin/hadoop-config.sh スクリプトにいくつかの変更を加える必要があります。

  1. HADOOP_MAPRED_HOME を設定する行を、mapreduceディレクトリではなくディレクトリを指すように変更しmapredます。
  2. ネイティブ Hadoop インストールの java.library.path を設定するすべてのコードをコメントアウトします。
于 2012-05-09T07:25:28.930 に答える
0

Windows 用の Hadoop サービス (Windowsに移植された Hadoop のバージョン) を確認する必要があります。

現在はベータ版ですが、まもなくリリースされる予定です。

于 2012-05-09T20:47:24.250 に答える
0

ジョブがディスパッチされ、タスクが実行され、結果がコンパイルされるまで、これを機能させることができました。

en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin

于 2012-05-16T11:10:22.943 に答える