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/318551web

若是一切都順利的話須要就不會遇到什麼問題,可是有一個問題一直困擾了一週!apache

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

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

這是由於找不到sqoop-1.4.5.jar文件致使的。code

從網上搜了不少解決辦法,具體的作法是:將sqoop-1.4.5.jar文件拷貝到$HADOOP_HOME/lib目錄下一份,但是我照作的,但問題仍是依舊,一週了,我實在是到了要放棄的地步了,開始懷疑本身的能力了都!視頻

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

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

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

解決辦法class

修改$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就行了

相關文章
相關標籤/搜索