大数据技术之Sqoop

一、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后使用的是双引号,则 CONDITIONSinWHEREclause.CONDITIONSquery使CONDITIONS前必须加转移符,防止shell识别为自己的变量。

该过程分为两步,第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库
从MYSQL到Hive,本质时从MYSQL => HDFS => load To Hive

你可能感兴趣的:(程序人生)