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就行了

相关文章
相关标签/搜索