1.下载sqoop安装包
我下载的是sqoop安装包sqoop-1.4.3.tar.gz。
2.解压安装包
tar -zxvf sqoop-1.4.3.tar.gz
sudo mv sqoop-1.4.3 /usr/local/
配置环境变量:SQOOP_HOME,CLASSPATH,PATH
同时将Sqoop_home下的sqoop-1.4.3.jar放到hadoop_home/lib中。
3.补充jar包
安装包中没有sqoop-1.4.3.jar这个包,需要单独下载这个包。sqoop-1.4.3.bin__hadoop-1.0.0.tar.gz此包中包含有sqoop-1.4.3.jar,可以下载这个包之后单独解压出sqoop-1.4.3.jar,把这个jar包放到sqoop的lib目录中$SQOOP_HOME/lib。
如果没有此包会报如下错误:
Could not find or load main classorg.apache.sqoop.Sqoop
4.去掉hbase的相关检查
编辑sqoop-1.4.3/bin/configure-sqoop注释掉73-77行的hbase检查,如果使用了hbase的话可以不用注释掉
5.配置jdbc驱动
我使用的是MySQL,将mysql-connector-java-5.1.26-bin.jar放入${sqoop_home}/lib中
6.Sqoop测试
(1)sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username ff --password ff
显示数据库连接信息:information_schema hive test
(2).sqoop import --connect jdbc:myql://sqlserver_ip/dbName --username ff --password ff --table test --hive--import -m 1
(3).sqoop import --connect jdbc:mysql://mysqlserver_IP/databaseName --table testTable -m 1
mysqlserver_ip是mysql服务器地址,分布式下必须不为localhost; testTable是表名; -m 1指定使用一个map任务,默认4个;
数据导入一般都是通过脚本来执行,比较方便一点。比如sqoop-import.sh,里面内容如下:
- CONNECT_URL=jdbc:oracle:thin:@192.168.27.160:1521:mydb1
- DB_NAME=dp
- DB_PWD=dp
- TABLE_NAME=TEST_TB
- COLUMNS=TEST_ID,TEST_NAME
- HDFS_PATH=ORA_DATA/${TABLE_NAME}
- sqoop import --append --connect $CONNECT_URL --username $DB_NAME --password
- $DB_PWD --target-dir $HDFS_PATH --num-mappers 1 --table $TABLE_NAME --column
- s $COLUMNS --fields-terminated-by '\001'