概述:
sqoop 是apache旗下一款“Hadoop”和关系数据库服务器之间传送数据“的工具。
导入数据:MySQL,Orale导入数据到Hadoop的HDFS,HIVE,HSASE等数据存储系统;
导出数据:从Hadoop的的文件系统中导出数据到关系数据库。
工作机制:
将导入或导出命令翻译成mapreduce程序来实现
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制
- Sqoop :SQ L-到当初接力
- 连接传统关系型数据库和Hadoop的的桥梁。
- 把关系型数据库的数据导入到hadoop的系统(如HDFS,HBASE和配置单元中)
- 把数据从Hadoop的系统里面抽取并导入到关系型数据库中
- 利用MapReduce的加快数据处理速度
- 批处理方式进行数据传输
Sqoop优势
- 高效,可控地利用资源
- 任务并行度,超时间等
- 数据类型映射与转换
- 可自动进行,用户也可自定义
- 支持多种数据库MySQL,Oracle,PostgreSQL
Sqoop进口
- 将数据从关系型数据库导入Hadoop的中
- Sqoop与数据库服务器通信,获取数据库表的元数据信息
- Sqoop启动一个地图 - 只的MP作业,利用元数据信息并行将数据写入Hadoop的。
按需导入name =“zhsangsan”
/bin/sqoop import --connect jdbc:mysql://localhost:3306/sqoop1
--username root --password 123456 --where "name='zhangsan'"
--target-dir /wherequery --table emp --m 1
按需导入,ID> 1
./bin/sqoop import --connect jdbc:mysql://localhost:3306/sqoop1
--username root --password 123456 --where "name='lisi'"
--target-dir /wherequery4 --query 'select id,name from emp1 where id >1
and $CONDITIONS' --split-by id --fields-terminated-by '\t' --m 1
Sqoop进口
- 将数据从关系型数据库导入Hadoop的的中
- Sqoop与数据库服务器通信,获取数据库表的元数据信息
- Sqoop启动一个地图 - 只的MP作业,利用元数据信息并行将数据写入Hadoop的。
Sqoop EXport
- 将数据从Hadoop的的导入关系型数据库中
- Sqoop与数据库服务器通信,获取数据库表的元数据信息
- 并行导入数据
- 将Hadoop的的上下文划分成若干个分
- 每一个split有一个Map Task进行数据导入
./bin/sqoop export --connect jdbc:mysql://localhost:3306/sqoop1
--username root --password 123456
--table emp1 --export-dir /user/root/emp1