介绍
大数据Hadoop框架生态系统中一员
只有map阶段,没有reduce阶段
作用
Sqoop可以理解为一个桥梁
可以将hadoop中的hdfs文件系统中的文件导入到RDBMS中
也可以将RDBMS中表以文件的形式导入到hdfs文件系统中
同样,也可以将hive中的表导出到RDBMS中,也可以将hive中的表导入到RDBMS中
安装
安装要求:在hadoop的基础上安装,可以设置hive路径与HBase路径
配置环境变量即可
首先修改文件名:
mv sqoop-env-template.sh sqoop-env.sh
然后配置配置文件:
这样就配置好了Sqoop
使用
将hdfs中的数据信息导入到mysql中
注意:mysql中必须要有对应的表,才可以导入数据
此处可能会出错误,是因为少了一个,或者mysql 的驱动包,导入lib中即可
#数据导入到mysql
bin/sqoop export
1--connect jdbc:mysql://bigdata-hpsk01.huadian.com/test \
2--username root --password 123456 \
3--table tb_emp --columns empno,ename,job,mgr,hiredate,sal,comm,deptno \
4--export-dir /user/hive/warehouse/db_practise.db/tb_emp \
5--num-mappers 2 \
6--input-fields-terminated-by '\t'
1:设置连接的mysql数据库
2:输入用户名 输入密码
3:要导入的表与字段信息
4:导入数据文件的位置
5:设置map任务数量
6:输入数据文件字段的分割方式
把数据导入到hdfs
bin/sqoop import \
1:--connect jdbc:mysql://bigdata-hpsk01.huadian.com/test \
2:--username root --password 123456 \
3:--table tb_emp \
4:--columns empno,ename,job,mgr,hiredate,sal,comm,deptno \
5:--target-dir /user/huadian/sqoop/emp-import \
6:--num-mappers 1 \
7:--fields-terminated-by '\t' \
8:--delete-target-dir
1234连接数据库,设置登录名密码,选择导出表与字段
5:选择导出文件的目录
6:map数量
7:字段分割方式
8:如果目标目录存在,删除
将RDBMS表中数据导入到HIve表中
导出执行过程:数据库->表 ->HDFS ->Hive
首先要做如下配置
SQOOP:依赖Hadoop和Hive,hive相关Jar包没有加载到SQOOP的运行环境上
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/opt/cdh5.7.6/hive-1.1.0-cdh5.7.6/lib/*
需要hive-site.xml放到Hadoop/etc/haddop/下面
ln -s /opt/cdh5.7.6/hive-1.1.0-cdh5.7.6/conf/hive-site.xml /opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/etc/hadoop
bin/sqoop import \
1:--connect jdbc:mysql://bigdata-hpsk01.huadian.com/test \
2:--username root \
3:--password 123456 \
4:--table tb_emp \
5:--columns empno,ename,job,mgr,hiredate,sal,comm,deptno \
6:--hive-import \
7:--hive-database default \
8:--create-hive-table \
9:--hive-table ht_emp \
10:--fields-terminated-by ',' \
11:--num-mappers 1 \
12:--hive-overwrite \
13:--delete-target-dir
6:导入到hive中
7:选择hive中的数据看
8:建立hive表
9:hive中的表名
10:字段分割方式
11:map数量
12:覆盖原hvie表中数据
13:删除目标目录,如果存在