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

原创
2019/06/17 19:54
阅读数 302

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
 

 

 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部