zoukankan      html  css  js  c++  java
  • 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就好了

  • 相关阅读:
    nodejs ---day01
    面向对象
    面向对象
    面向对象
    webpack
    webpack
    webpack
    模块化 (ESM) --- day02
    模块化 --- day01
    轮播图(淡入淡出切换)
  • 原文地址:https://www.cnblogs.com/hxsyl/p/6552701.html
Copyright © 2011-2022 走看看