2012-05-09 23 views
2

我想通過Cygwin在Windows中運行Hadoop的示例字數統計程序。我已經安裝了Hadoop和Cygwin。Windows中的Hadoop

我運行使用此statment的單詞計數程序:

$ 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路徑。任何幫助表示讚賞。

+0

可能重複http://stackoverflow.com/問題/ 9755508/problems-running-simple-map-reduce-hadoop-examples-in-cygwin) –

+0

請嘗試以下鏈接 http://stackoverflow.com/a/19804468/1446276 – Abhijit

回答

2

這是一些Hadoop版本的已知問題(有關完整討論,請參閱https://issues.apache.org/jira/browse/HADOOP-7682)。

我有版本1.0.2的這個問題,所以我嘗試了各種其他版本。

最終我得到了它通過返回到版本0.22.0

工作,如果你回去0.22.0版本,你需要做一些修改到bin/Hadoop的配置的。 sh腳本:

  1. 更改,設置了HADOOP_MAPRED_HOME來點mapreduce目錄,而不是mapred目錄就行了。
  2. 註釋掉所有爲本機hadoop安裝設置java.library.path的代碼。
+0

謝謝Steve。我會試試這個。 – Suresh

0

你應該看看hadoop services for windows - Hadoop的一個版本的被移植到Windows。

目前它處於測試階段,但它應該很快就會發布。

0

我已經設法使這個工作到了派遣作業,執行任務和編譯結果的地步。

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

的[在cygwin的運行簡單的地圖,減少的hadoop例子的問題](