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来到出数据到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就好了

目录
相关文章
org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.
org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.
|
1月前
|
Java 数据库连接 mybatis
解决Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found
解决Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found
85 1
|
2月前
|
Dubbo Java 应用服务中间件
Serialized class org.apache.catalina.core.ApplicationPart must implement java.io.Serializable
Serialized class org.apache.catalina.core.ApplicationPart must implement java.io.Serializable
49 0
|
6月前
|
Java
【Java异常】Error:(30, 62) java: 程序包com.sun.org.apache.xerces.internal.impl.dv.util不存在
【Java异常】Error:(30, 62) java: 程序包com.sun.org.apache.xerces.internal.impl.dv.util不存在
536 0
|
4月前
|
SQL 分布式计算 资源调度
[已解决]FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Unable to
[已解决]FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Unable to
126 0
|
4月前
|
SQL 分布式计算 Hadoop
【已解决[ERROR] Could not execute SQL statement. Reason:java.lang.ClassNotFoundException: org.apache.had
【已解决[ERROR] Could not execute SQL statement. Reason:java.lang.ClassNotFoundException: org.apache.had
82 0
|
6月前
|
缓存 Java 编译器
【Java异常】Error:(19, 21) java: 无法访问org.apache.poi.xwpf.usermodel.ParagraphAlignment 找不到org.apache.po
【Java异常】Error:(19, 21) java: 无法访问org.apache.poi.xwpf.usermodel.ParagraphAlignment 找不到org.apache.po
136 0
|
6月前
|
XML Java 数据库连接
MyBatis参数映射问题解决教程: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 wit
MyBatis参数映射问题解决教程: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 wit
290 1
|
6月前
|
分布式计算 运维 大数据
盘点下近几年退役的顶级 Apache 大数据项目 - 继 Sentry,Sqoop 之后,Ambari 正式退役!
盘点下近几年退役的顶级 Apache 大数据项目 - 继 Sentry,Sqoop 之后,Ambari 正式退役!
|
7月前
|
存储 Java 数据库连接
Apache IoTDB开发之Load External TsFile工具
加载外部 tsfile 工具允许用户从正在运行的 Apache IoTDB 实例加载 tsfiles、删除 tsfile 或将 tsfile 移动到目标目录。默认情况下,将创建架构。当tsfile对应的存储组不存在时,用户可以通过第四个参数设置存储组的级别。默认情况下,它将使用 中设置的存储组级别。如果该文件对应的文件存在,则会加载到 Apache IoTDB 的数据目录和引擎中。

热门文章

最新文章

推荐镜像

更多