官网下载tar -zxvf
修改conf中的 sqoop-env-template.sh 为sqoop-env.sh
添加相应的地址
然后将数据库驱动链接包放到sqoop lib目录下,
但是我没放也没报错
bin/sqoop 可能会出现
Error: Could not find or load main class org.apache.sqoop.Sqoop
是因为缺少jar包所致,
1.sqoop-1.4.x.tar.gz在1.4.5以上的安装包已经没有了这个jar包,必须下载sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz这个安装包。
2.然后解压这个安装包,打开安装包取出sqoop-1.4.6.jar放在hadoop的lib下但可能还是会出错
所以直接修改bin/sqoop脚本
cat sqoop最下面一行为
exec ${HADOOP_COMMON_HOME}/bin/hadoop org.apache.sqoop.Sqoop "$@"
修改为
exec ${HADOOP_COMMON_HOME}/bin/hadoop jar ${HADOOP_COMMON_HOME}/sqoop-1.4.5.jar org.apache.sqoop.Sqoop "$@"
即显示指定jar包位置,
问题解决
其实只要下载解压alpha版本的就行
sqoop 连接mysql可能会出现access deny root@localhost错误
原因mysql没有配置可访问的ip,即没有远程登录,但我以前配置了
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;
flush privileges;
还有一种哭笑不得的原因,直接输入密码 --password xxx需加引号!!! mmp -P后面输入密码-P
启动
bin/sqoop import --connect jdbc:mysql://ip:3306/test --username root -P --table user --m 1
一定是ip地址域名会出错,ip 最后的m是mapreduce的数量
导入到指定hdfs目录 --target-dir
导入到hive中
bin/sqoop import --connect jdbc:mysql://172.16.235.128/test --username root -P --table user --hive-import --m 1
然后会报错
Could not load org.apache.hadoop.hive.conf.HiveConf.(心里一万个草泥马)
一个sqoop这么多错
原因没有配置hive环境,
导入到hive必然依赖hive配置
/etc/profile中添加
export HIVE_HOME=/opt/hive1.2.2
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HADOOP_CLASSPATH=$HADOOP_HOME/lib/native/*:$HIVE_HOME/lib/*:$HIVE_HOME/conf