大数据(hadoop-数据入库系统Sqoop原理架构)

霸气de小男生 提交于 2019-12-01 23:48:52

Sqoop是什么

Sqoop:SQL-to-Hadoop

连接传统关系型数据库和Hadoop的桥梁
   把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS、HBase 和 Hive) 中;
   把数据从 Hadoop 系统里抽取并导出到关系型数据库里。

利用MapReduce

批处理方式进行数据传输

Sqoop优势

高效、可控的利用资源
   任务并行度、超时时间等

数据类型映射与转换
   可自动进行,用户也可自定义

支持多种数据库
   MySQL
   Oracle
   PostgreSQL

Sqoop1架构

Sqoop2架构

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 person
	--target-dir
 --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
   --fields-terminated-by

 --connnect:  指定JDBC URL
 --username/password :mysql 数据库的用户名
 --table :要导入的数据库表
 export-dir :数据在HDFS 上存放目录

Sqoop与其他系统结合

     Sqoop 可以与Oozie 、Hive 、Hbase 等系统结合;

     用户需要在sqoop-env.sh 中增加HBASE_HOME 、HIVE_HOME
 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!