2012-03-18 11 views
10

私は、スタンドアロンモードで64ビットWindows 7を実行しているラップトップでHadoopを実行しようとしています。 Cygwin 1.7をデフォルトフォルダ(c:\ cygwin)にインストールしました。私は最新のJDKをc:\ jdk1.7.0_03というフォルダに持っていて、JAVA_HOME環境変数を設定しています。cygwinで単純なmap-reduce hadoopの例を実行するときの問題

私はcygwinのプロンプトから次のコマンドを実行しよう:

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 

は、ここで私は取得エラーです:

12/03/17 19:08:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-ehtzrhf\mapred\staging\ehtzrhf837602798\.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:484) 
     at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:319) 
     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:848) 
     at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:842) 
     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:1059) 
     at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:842) 
     at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:816) 
     at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1253) 
     at org.apache.hadoop.examples.Grep.run(Grep.java:69) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 
     at org.apache.hadoop.examples.Grep.main(Grep.java:93) 
     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) 

私はHadoopの1.0.1ともHadoopの両方で試してみました-0.20.205.0と同じ問題が発生します。私もそれは\ tmpなどのパスを見せて、それは非常に奇妙見つける

export PATH=.:/cygdrive/c/cygwin/bin:$HADOOP_INSTALL/bin 

を...:私はまた、パスにCygwinのbinフォルダを追加しました

export TMP=/cygdrive/c/temp 
export TEMP=/cygdrive/c/temp 

と私の.bashrcを更新しました/ tmp /の代わりに...

Linux VMを再コンパイルまたは実行するのは簡単ではありませんか?

+0

を、しかし、Hadoopの0.20.2を使用して、私はしないでくださいこれに踏み込んでください。 – dplante

+0

ねえ、私はこの昨日にも直面した。私は誰かがそれのための修正を持っている場合私はうれしいだろう。 +1 –

答えて

2
+0

ええ、ジラにも投稿してくれてありがとう。ファイルメソッドの戻り値がチェックされていないカスタムバージョンの1.0.0をビルドすることで、自分で修正しました。これは 'FileUtil.setPermission'で起こり、' checkReturnValue'ですべての行を削除しただけです。 –

+1

Dave LathamはsetPermission().https://issues.apache.org/jira/browse/HADOOP-7682 – FKorning

0

私は、タスクが実行され、ジョブがディスパッチされているポイントに、この作業を取得するために管理してきた、との結果がまとめました。

は、しかし、我々はまだcygwinのシンボリックリンクを理解するためにサーブレットを取得する必要があります。私はJettyでこれをどうやって行うのか分かりません。

これらの2つのリンクは、TomcatとJettyがシンボリックリンクをたどることを許可する方法を示していますが、これがcygwinで動作するかどうかはわかりません。 * http://www.lamoree.com/machblog/index.cfm?event=showEntry&entryId=A2F0ED76-A500-41A6-A1DFDE0D1996F925 * Configure Symlinks for single directory in Tomcat

そうでなければ、我々は桟橋のコードを開き、org.apache.hadoop.fs.LinkedFileではjava.io.Fileを交換する必要があります。ここで

+0

にパッチを当てています。http: //en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin – FKorning