一、Sqoop简介
Apache Sqoop™是一种旨在有效地在Apache Hadoop和诸如关系数据库等结构化数据存储之间传输大量数据的工具。
Sqoop于2012年3月孵化出来,现在是一个顶级的Apache项目。
注意:1.99.7与1.4.6不兼容,且没有特征不完整,它并不打算用于生产部署。
二、Sqoop原理
将导入或导出命令翻译成mapreduce程序来实现。
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
三、Sqoop的使用
导入数据:
在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字。
1:全部导入
$ bin/sqoop import \
--connect jdbc:mysql://bigdata111:3306/test \
--username root \
--password 000000 \
--table bb \
--target-dir /user/test \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t"
2、查询导入
$ bin/sqoop import \ 导入
--connect jdbc:mysql://bigdata111:3306/test \ 连接数据库
--username root \ 数据库
--password 000000 \ 密码
--target-dir /user/test \ 指定HDFS目 录
--delete-target-dir \ 删除
--num-mappers 1 \ 指定数量
--fields-terminated-by "\t" \ 数据分割
--query 'select name from bb where id <=100 and $CONDITIONS;'
提示:must contain ' C O N D I T I O N S ′ i n W H E R E c l a u s e . 注 : C O N D I T I O N S 翻 译 ‘ 条 件 ’ 如 果 q u e r y 后 使 用 的 是 双 引 号 , 则 CONDITIONS' in WHERE clause. 注:CONDITIONS 翻译‘条件’ 如果query后使用的是双引号,则 CONDITIONS′inWHEREclause.注:CONDITIONS翻译‘条件’如果query后使用的是双引号,则CONDITIONS前必须加转移符,防止shell识别为自己的变量。
该过程分为两步,第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库
从MYSQL到Hive,本质时从MYSQL => HDFS => load To Hive