eclipse 執行MapReduce程式錯誤異常彙總(解決Map not fount)

Thinkgamer_gyt發表於2015-08-24

錯誤一:

Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class wordCount.wordCount$Map not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:186)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:742)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
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:1628)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.ClassNotFoundException: Class wordCount.wordCount$Map not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1980)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2072)
... 8 more

問題分析:很煩人的一個問題,很久之前就碰見過,後來電腦linux換了一個版本,解決了

解決辦法:eclipse新增hadoop配置檔案問題,記住只需要在程式目錄下新建一個conf的資料夾,把log4j.properties拷貝到該目錄下,重啟eclipse即可

錯誤二:

eclipse 執行MR提示無法訪問的情況

問題分析:許可權不足

解決辦法:重新給hdfs檔案系統賦予許可權(可能會經常遇到這種問題,可執行同一種操作即可)bin/hdfs dfs -chmod -R 777 /

錯誤三:

HMaster啟動之後立即又關閉

問題分析:可能是zookeeper不穩定造成的,

解決辦法:停止zookeeper服務(bin/zkServer.sh stop zoo1.cfg     bin/zkServer.sh stop zoo2.cfg    bin/zkServer.sh stop zoo3.cfg ),再重新啟動

錯誤四:

15/08/23 11:10:07 INFO mapreduce.JobSubmitter: Cleaning up the staging area file:/usr/local/hadoop/tmp/mapred/staging/thinkgamer1735608800/.staging/job_local1735608800_0001
Exception in thread "main" ExitCodeException exitCode=1: chmod: 無法訪問"/usr/local/hadoop/tmp/mapred/staging/thinkgamer1735608800/.staging/job_local1735608800_0001": 沒有那個檔案或目錄

問題分析:eclipse的配置檔案缺少

解決辦法:把配置hadoop時所修改的配置檔案全部複製到src資料夾下


錯誤五:

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/thinkgamer/output already exists

問題分析:hdfs檔案系統中的output資料夾已經存在

解決辦法:刪除即可(同時還可能出現找不到input目錄的問題,此時注意檢查input路徑)

相關文章