Sqoop

Sqoop是什么

Sqoop 是连接传统关系型数据库和Hadoop 的桥梁,主要功能是,

  把关系型数据库的数据导入到Hadoop 系统( 如HDFS、HBase 和Hive) 中

  把数据从Hadoop 系统里抽取并导出到关系型数据库里

可以利用MapReduce 加快数据传输速度,使用批处理的方式进行数据传输

关系数据库与Hadoop之间传递数据

全量导入:

sqoop

增量导入:

Canal(https://github.com/alibaba/canal)

DataBus(https://github.com/linkedin/databus )

Sqoop import

将数据从关系型数据库导入Hadoop中

  1、Sqoop与数据库Server 通信,获取数据库表的元数据信息

  2、Sqoop启动一个Map-Only的MR作业,利用元数据信息并行将数据写入Hadoop

Sqoop import使用方法

sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities
注:
--connnect: 指定JDBC URL
--username/password:mysql数据库的用户名
--table:要读取的数据库表

Sqoop export

将数据从Hadoop导入关系型数据库导中

  1、Sqoop与数据库Server 通信,获取数据库表的元数据信息

  2、并行导入数据,将Hadoop上文件划分成若干个split,每个split由一个Map Task进行数据导入

Sqoop export使用方法

sqoop export \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--export-dir cities
注:
--connnect: 指定JDBC URL
--username/password:mysql数据库的用户名
--table:要导入的数据库表
export-dir:数据在HDFS上存放目录

Sqoop 与其他系统结合

sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--hive-import

sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--hbase-table cities \
--column-family world

 

posted @ 2017-05-25 10:27  Super_Orco  阅读(371)  评论(0编辑  收藏  举报