安装
解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
删除压缩包
rm -rf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
复制到指定目录
mv sqoop-1.4.7.bin__hadoop-2.6.0 /opt/yjx/
修改目录名
mv sqoop-1.4.7.bin_hadoop-2.6.0 sqoop-1.4.7
修改配置文件
vim /etc/profile
export SQOOP_HOME=/opt/yjx/sqoop-1.4.7
export PATH=$SQOOP_HOME/bin:$PATH
让配置文件生效
source /etc/profile
连接mysql的包
cp ~/mysql-connector-java-5.1.32-bin.jar /opt/yjx/sqoop-1.4.7/lib/
添加Hive的Jar包
cp /opt/yjx/apache-hive-3.1.2-bin/lib/hive-exec-3.1.2.jar /opt/yjx/sqoop-1.4.7/lib/.
修改sqoop配置文件
cd /opt/yjx/sqoop-1.4.7/conf/
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/yjx/hadoop-3.1.2
export HADOOP_MAPRED_HOME=/opt/yjx/hadoop-3.1.2
export HIVE_HOME=/opt/yjx/apache-hive-3.1.2-bin
export HBASE_HOME=/opt/yjx/hbase-2.2.5
export ZOOKEEPER_HOME=/opt/yjx/zookeeper-3.4.5export ZOOCFGDIR=/opt/yjx/zookeeper-3.4.5/conf
修改configure-sqoop
[root@node01 ~]# vim /opt/yjx/sqoop-1.4.7/bin/configure-sqoop
删除掉HCatalog,Accumulo检查(切记从后向前删除)
179-196 18dd
134-143 10dd
82-100 19dd
验证
[root@node01 ~]# sqoop version
[root@node01 ~]# sqoop list-databases -connect jdbc:mysql://node01:3306/ -username root -password 123456
启动集群
【123】zkServer.sh start
【1】start-all.sh.
【1】start-hbase.sh
【1】hive –service metastore
【1】hiveserver2
将普通数据库的数据导入到hdfs中
首先启动集群
执行将emp表中数据全部导入
sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--target-dir /sqoop/empall \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t";
表中的数据就在/sqoop/empall目录下了
查询导入
sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--target-dir /sqoop/empquery \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query 'select empno,ename from emp where hiredate >= 1987-07-13 and
$CONDITIONS;'
只导入指定的列
sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--target-dir /sqoop/empcolumn \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--columns "empno,ename" \
--table emp;
从RDBMS到HDFS关键字导入
sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--target-dir /sqoop/empkeyword \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--table emp \
--where "deptno=30"
RDBMS到Hive
sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table hive_emp;
提示:该过程分为两步
第一步将数据导入到HDFS ,默认路径为 /user/root
第二步将导入到HDFS的数据迁移到Hive仓库
RDBMS到Hbase
sqoop import \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--columns "empno,ename,deptno" \
--column-family "info" \
--hbase-create-table \
--hbase-row-key "empno" \
--hbase-table "emp" \
--num-mappers 1 \
--split-by empno;
sqoop1.4.7只支持HBase1.0.1之前的版本的自动创建HBase表的功能
执行
hbase shell
手动创建
hbase> create ‘emp’,‘info’
导出数据
sqoop export \
--connect jdbc:mysql://node01:3306/scott \
--username root \
--password 123456 \
--table emp \
--num-mappers 1 \
--export-dir /sqoop/empall \
--input-fields-terminated-by "\t"
在软件目录下创建
mkdir options
创建脚本
touch opt/sqoop.opt
vim sqoop.opt
export
--connect
jdbc:mysql://node01:3306/scott
--username
root
--password
123456
--table
emp
--num-mappers
1
--export-dir
/sqoopdb/emp
--input-fields-terminated-by
"\t"
执行脚本
sqoop –options-file /opt/yjx/sqoop-1.4.7/options/sqoop.opt