共计 1342 个字符,预计需要花费 4 分钟才能阅读完成。
异常:
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/sqoop/Sqoop
Caused by: java.lang.ClassNotFoundException: org.apache.sqoop.Sqoop
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
一看就是找不到 jar 包,这个问题困扰了我 1 天, 各种修改改 lib,没用,网上找到的英文资料也是修改 lib 都没用 (版本太新,没有中文资料)。解决办法:
去 $SQOOP_HOME/bin 下,修改 sqoop 脚本:
修改前:exec ${Hadoop_COMMON_HOME}/bin/hadoop org.apache.sqoop.Sqoop “$@”
修改后:exec ${HADOOP_COMMON_HOME}/bin/hadoop jar $SQOOP_HOME/lib/sqoop-1.4.3-cdh4.5.0.jar org.apache.sqoop.Sqoop “$@”
由此可见,由于使用了 hadoop 命令,所以在安装 sqoop-1.4.3-cdh4.5.0 的机器上必选先安装 hadoop
Sqoop 的详细介绍:请点这里
Sqoop 的下载地址:请点这里
相关阅读:
通过 Sqoop 实现 Mysql / Oracle 与 HDFS / Hbase 互导数据 http://www.linuxidc.com/Linux/2013-06/85817.htm
[Hadoop] Sqoop 安装过程详解 http://www.linuxidc.com/Linux/2013-05/84082.htm
用 Sqoop 进行 MySQL 和 HDFS 系统间的数据互导 http://www.linuxidc.com/Linux/2013-04/83447.htm
Hadoop Oozie 学习笔记 Oozie 不支持 Sqoop 问题解决 http://www.linuxidc.com/Linux/2012-08/67027.htm
Hadoop 生态系统搭建(hadoop hive hbase zookeeper oozie Sqoop)http://www.linuxidc.com/Linux/2012-03/55721.htm
Hadoop 学习全程记录——使用 Sqoop 将 MySQL 中数据导入到 Hive 中 http://www.linuxidc.com/Linux/2012-01/51993.htm