Sqoop找不到主類 Error: Could not find or load main class org.apache.sqoop.Sqoop


最近由於要使用Sqoop來到出數據到hdfs,可是發現Sqoop1.4.5跟hadoop2.X不兼容,需要對Sqoop1.4.5進行編譯,編譯的具體方法見:http://my.codeweblog.com/AlbertHa/blog/318551

如果一切都順利的話需要就不會遇到什么問題,但是有一個問題一直困擾了一周!

這是問題是什么呢? 就是每次執行$SQOOP_HOME/bin/sqoop腳本的時候總是抱一個錯誤:

Error: Could not find or load main class org.apache.sqoop.Sqoop

這是因為找不到sqoop-1.4.5.jar文件導致的。

從網上搜了很多解決辦法,具體的做法是:將sqoop-1.4.5.jar文件拷貝到$HADOOP_HOME/lib目錄下一份,可是我照做的,但問題還是依舊,一周了,我實在是到了要放棄的地步了,開始懷疑自己的能力了都!

今天我在絕望之時,打開sqoop腳本看了一下,發現腳本的最后有這樣一句:

exec ${HADOOP_COMMON_HOME}/bin/hadoop org.apache.sqoop.Sqoop "$@"

這個應該就是執行hadoop jar命令的地方,看到這里或許你應該明白這個錯誤該怎么解決了吧?

解決辦法

修改$SQOOP_HOME/bin/sqoop腳本:

* 修改前:

exec ${HADOOP_COMMON_HOME}/bin/hadoop org.apache.sqoop.Sqoop "$@"

* 修改后:

exec ${HADOOP_COMMON_HOME}/bin/hadoop jar $SQOOP_HOME/sqoop-1.4.5.jar org.apache.sqoop.Sqoop "$@"

即:顯示指定sqoop-1.4.5.jar文件的所在位置。

然后執行sqoop help命令,就不會再報Could not find or load main class org.apache.sqoop.Sqoop 的錯誤了。

版本說明

Hadoop版本:Hadoop2.4.0

Sqoop版本:sqoop-1.4.5.bin__hadoop-2.0.4

 

 

不過視頻上說直接可用,是不是因為我沒在hxsyl下source /etc/profile,因為echo $SQOOP_HOME,還是以前的緩存,source就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM