关系型数据的收集

Sqoop是一个用于在Hadoop和关系型数据库间高效迁移数据的工具。它采用插拔式Connector架构,支持数据导入导出,包括全量和增量数据收集。Sqoop1采用客户端模式,而Sqoop2引入了Server,提高了易用性和安全性。数据导入导出过程中,Sqoop会将关系数据库的每条记录转化为HDFS中的行,支持多种数据格式和并发处理。
摘要由CSDN通过智能技术生成

为了能利用大数据技术处理和存储关系型数据(如mysql,oracle),首先需将这些数据导入到像HDFS、HBase这样的大数据存储系统中,以便使用MapReduce、Spark这样的分布式计算技术进行高效分析和处理。从另一个角度讲,为了便于与前端的数据可视化系统对接,我们通常需要讲Hadoop大数据系统分析产生的结果(如报表,通常数据量不会太大)导回到关系型数据库中。为了解决上述问题,高效地实现关系型数据库与Hadoop之间的数据导入导出,Hadoop生态系统提供了工具Sqoop(SQL to Hadoop),以下重点剖析Sqoop设计思想,基本架构以及常见的使用场景。

 

一、Sqoop概述


1、Apache Sqoop是一个性能高、易用、灵活的数据导入导出工具,解决了关系型数据库与Hadoop之间的数据传输问题。
2、设计动机:数据迁移、可视化分析结果、数据增量导入
3、基本思想:Sqoop采用插拔式Connector架构,Connector是与特定数据源相关的组件,主要负责抽取和加载数据,可自己定制。
4、特点:性能高、自动类型转换、自动传播元信息

 

二、Sqoop基本架构


1、Sqoop1(1.4.x)基本架构
    Sqoop1 实际上是一个只有 Map 的 MapReduce 作业,只是一个客户端工具。
    当用户通过shell命令提交迁移作业后,Sqoop会从关系型数据库中读取元信息,并根据并发度和数据表大小将数据划分成若干分片,每片交给一个Map Task处理,这样,多个Map Task同时读取数据库中的数据,并行将数据写入目标存储系统,比如HDFS、HBase和Hive等。
    缺点:Connector定制麻烦(仅支持基于JDBC的Connector)、客户端软件繁多(Mysql、Hadoop/HBase/Hive、JDBC驱动、数据库厂商提供的Connector等)、安全性差(明文提供数据库的用户名和密码)


2、Sqoop2(1.9.x)基本架构
    Sqoop2对Sqoop1进行了改进,引入了Sqoop Server,将所有管理工作放到Server端,包括Connector管理、MySQL/Hadoop相关的客户端、安全认证等,这使得Sqoop客户端变得非常轻,用户只需要通过命令行或浏览器便可随时随处使用Sqoop。Sqoop Server会根据用户创建的Sqoop Job生成一个MapReduce作业,提交到Hadoop集群中分布式执行。
    Sqoop2主要组件及功能:
        (1)Sqoop Client:用户可以通过客户端命令行(CLI)和浏览器两种方式,其中浏览器方式允许用户直接通过HTTP方式完成Sqoop的管理和数据的导入导出。
        (2)Sqoop Server:
            Connector:Connector被进一步抽象化和模块化,通用部分被抽取出来,本身只关注数据解析和加载相关的功能,包括Partitioner(如何对源数据分片)、Extractor(将一个分片中的数据解析成一条条记录,并输出)和Loader(读取Extractor输出的数据,并以特定格式写入目标数据源中)等主要模块。
            Metadata:Sqoop中的元信息,包括可用的Connector列表、用户创建的作业和Link(实力化的一个Connector,以便创建作业时使用)等。元信息被存储在数据仓库中,默认使用轻量级数据库Apache Derby,用户也可根据需要替换成MySQL等其他数据库。
            RESTful和HTTP Server:与客户端对接,相应客户端发出的RESTful请求和HTTP请求。


3、Sqoop1与Sqoop2对比
易用性方面:
    Sqoop1:Client-Only架构,所有软件依赖部署到客户端;客户端仅支持命令行访问方式(CLI);客户端需访问Hive、HBase等数据源。
    Sqoop2:Client/Server架构,所有软件依赖部署到服务器端,进而使得客户端很轻量级;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值