Sqoop产生的背景

1、目前很多使用hadoop技术的企业,有大量的数据存储在传统关系型数据库中。

2、早期由于工具的缺乏,hadoop与传统数据库之间的数据传输非常困难。

1)传统数据库中的数据导入到hadoop中,便于廉价的分析与处理

2)hadoop中的数据导入传统数据库,可利用强大的sql进一步分析和展示。

什么是sqoop

1sqoop 名字的来源:SQL-to-Hadoop

2、我们可以把它看做成连接传统数据库和Hadoop的桥梁

1)把关系型数据库中的数据导入到hadoop或者与其相关的系统比如HDFS hive Hbase

3)hadoop中的数据抽取出来,导入到关系型数据库中

3、它的设计思想就是:利用MapReduce加快数据传输速度

Sqoop初识篇

Sqoop的优势

1sqoop可以高效的可控的利用资源,比如它可以通过调整任务数,来控制任务的并发度,另外还可以配置数据库的访问时间等等

2sqoop能自动的完成数据类型的映射与转换

3、它支持多种数据库,比如mysql ,oraclepostgresql

Sqoop1sqoop2的比较

1sqoop1sqoop2是两个不同的版本,它们是完全不兼容的

2、版本划分方式:Apache 1.4.x 之后的版本属于sqoop1,1.99.x之上的版本属于sqoop2

3、与sqoop1相比,sqoop2的优势

它引入的sqoop Server,便于集中化的管理Connector或者其它

的第三方插件

多种访问方式:CLIWeb UIREST API

它引入了基于角色的安全机制,管理员可以在sqoopServer上, 配置不同的角色。

为什么选择sqoop

1大部分企业还在使用sqoop1版本

2sqoop1能满足公司的基本需求

3sqoop2 功能还不是很成熟和完善

4sqoop只是一个工具而已,相对比较简单

Sqoophadoop生态中体系的位置

Sqoop初识篇

Sqoop的基本架构

 Sqoop初识篇

Sqoop Import的原理

 Sqoop初识篇

Sqoop  Import详细流程

Sqoopimport时,需要指定split-by参数。Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同map中。

l每个map中再处理数据库中获取的一行一行的值,写入到HDFS(由此也可知,导入导出的事务是以Mapper任务为单位)

l同时split-by根据不同的参数类型有不同的切分方法,如比较简单的int型,Sqoop会取最大和最小split-by字段值,然后根据传入的num-mappers来确定划分几个区域。

比如select max(split_by),min(split-by) from得到的max(split-by)min(split-by)分别为10001,而num-mappers2的话,则会分成两个区域(1,500)(501-1000),同时也会分成2sql2map去进行导入操作,分别为select XXX from table where split-by>=1 and split-by<500select XXX from table where split-by>=501 and split-by<=1000。最后每个map各自获取各自SQL中的数据进行导入工作。

Sqoop Export原理

Sqoop初识篇

相关文章:

  • 2022-12-23
  • 2021-10-25
  • 2022-12-23
  • 2022-01-11
  • 2021-05-14
  • 2021-09-14
猜你喜欢
  • 2021-10-21
  • 2021-11-26
  • 2021-07-15
  • 2021-06-15
  • 2021-10-17
  • 2021-09-23
相关资源
相似解决方案