eclipse下提交job時報錯mapred.JobClient: No job jar file set. User classes may not be found.

windows下,連接遠程集羣,直接在eclipse裏運行mapreduce作業時,

錯誤信息:

11/10/14 13:52:07 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
11/10/14 13:52:07 WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
11/10/14 13:52:07 INFO input.FileInputFormat: Total input paths to process : 5
11/10/14 13:52:07 INFO mapred.JobClient: Running job: job_201110141041_0014
11/10/14 13:52:08 INFO mapred.JobClient:  map 0% reduce 0%
11/10/14 13:52:19 INFO mapred.JobClient: Task Id : attempt_201110141041_0014_m_000000_0, Status : FAILED
java.lang.RuntimeException: java.lang.ClassNotFoundException: Finger$FingerMapper1
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:809)
    at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:157)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:569)

    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)

。。。。

出錯的原因就是找不到Mapper類和Reduce類。

單機運行的時候是不會存在這個問題的,但是現在是提交到遠程集羣直接運行,就會出現問題了,原因可以參考這篇文章:http://blog.csdn.net/andyelvis/article/details/7706205

解決辦法:

將本工程導出jar包放到工程根目錄下面,並在提交程序前添加下面的設置

conf.set("mapred.jar", "loadforecast_utils.jar"); //其中loadforecast_utils.jar是你的導出的jar文件名。注意第一個參數不要拼寫錯了。

重新運行問題解決!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章