轉載於:http://blog.csdn.net/lazythinker/article/details/6931651
一、下載並配置Cygwin
1、建立系統變數【CYGWIN】,變數值為【ntsc tty】
2、編輯系統變數【Path】,加入【c:\cygwin\bin】
二、 安裝java
配置 JAVA_HOME;
三、配置eclipse
1、把hadoop安裝包下的 contrib/ 目錄下的外掛程式 hadoop-*-eclipse-plugin.jar 放到eclipse目錄的 plugins 目錄下;
2、其他配置過程參考網路其他文檔;
3、進行運行時配置,選擇Run As—>Open Debug Dialog選項,在Arguments選項卡中設定:【D:\workspace\hadoop-test\in D:\workspace\hadoop-test\out】 ,在其中填寫兩個目錄,分別為資料輸入目錄和輸出目錄,中間用空格分隔;
四、可能遇到的問題
1、如果遇到這個錯誤:org.apache.hadoop.security.AccessControlException: Permission denied: user=administrator, access=EXECUTE, inode="job_201111031322_0003":heipark:supergroup:rwx-
問題原因:本機使用者administrator(本機windows使用者)想要遠程操作hadoop系統,沒有許可權引起的。
解決辦法:
a、如果是測試環境,可以取消hadoop hdfs的使用者權限檢查。開啟conf/hdfs-site.xml,找到dfs.permissions屬性修改為false(預設為true)OK了。
b、修改hadoop location參數,在advanced parameter選項卡中,找到hadoop.job.ugi項,將此項改為啟動hadoop的使用者名稱即可。
注意第一次設定的時候可能沒有hadoop.job.ugi參數,報錯後在去看就有了。
2、運行例子時出現:IOException: Cannot run program "chmod": CreateProcess error=2,
問題原因:沒有安裝cygwin 或 沒有配置環境變數;
解決辦法:安裝並配置環境變數 bin到 path下 重啟 eclipse 問題解決;
3、如果出現下面問題
11/11/03 12:21:31 WARN mapred.LocalJobRunner: job_local_0001
java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:781)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:350)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
11/11/03 12:21:31 INFO mapred.JobClient: map 0% reduce 0%
11/11/03 12:21:31 INFO mapred.JobClient: Job complete: job_local_0001
11/11/03 12:21:31 INFO mapred.JobClient: Counters: 0
Exception in thread "main" java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)
at mapred.WordCount.main(WordCount.java:110)
問題原因:用戶端程式運行時java虛擬機器記憶體配置不夠
解決辦法:修改run configuration,選擇Arguments選項卡,在VM arguments欄中加入-Xmx1024m,儲存即可解決問題。