最近在学习sqoop,我以前用过sqoop-1.4.4版本,最近想学习最新版sqoop-1.99.7,在网上找了安装教程,安装完后用
#sqoop2-tool verify命令进行验证,结果报caused by java.lang.ClassNotFoundException:org.apache.hadoop.conf.Configuration
这个错误,明显是sqoop没有找到hadoop的路径,有网友说把hadoop的jar包拷贝到sqoop目录下,这种方法是最笨的方法,不建议。
既然是路径的问题,我们就去修改路径,打开sqoop脚本文件,#vim sqoop.sh
进入编辑模式以后,找到一下几行:
HADOOP_COMMON_HOME=${HADOOP_COMMON_HOME:-${HADOOP_HOME}/share/hadoop/common}
HADOOP_HDFS_HOME=${HADOOP_HDFS_HOME:-${HADOOP_HOME}/share/hadoop/hdfs}
HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME:-${HADOOP_HOME}/share/hadoop/mapreduce}
HADOOP_YARN_HOME=${HADOOP_YARN_HOME:-${HADOOP_HOME}/share/hadoop/yarn}
如果没猜错的话,你当时在安装hadoop时,在系统环境变量/etc/profile文件中除了定义了HADOOP_HOME,还定义其他,例如HADOOP_COMMON_HOME等等,这样的话,就会导致很多莫名的错误,也许sqoop找不到hadoop的路径就是这个原因
所以解决办法就是,把上面sqoop.sh中的那四行代码改成
HADOOP_COMMON_HOME=${HADOOP_HOME}/share/hadoop/common
HADOOP_HDFS_HOME=${HADOOP_HOME}/share/hadoop/hdfs
HADOOP_MAPRED_HOME=${HADOOP_HOME}/share/hadoop/mapreduce
HADOOP_YARN_HOME=${HADOOP_HOME}/share/hadoop/yarn
为了保险起见,可以把${HADOOP_HOME}也换成绝对路径(例如: HADOOP_COMMON_HOME=/home/lvyuan/hadoop-2.6.0/share/hadoop/common),然后再#sqoop2-tool verify
就验证通过了
sqoop-1.99.7安装教程参见这篇博客http://blog.csdn.net/u012842205/article/details/52344196