Hadoop的数据采集框架

问题导读:
Hadoop数据采集框架都有哪些?
Hadoop数据采集框架异同及适用场景?java

Hadoop提供了一个高度容错的分布式存储系统,帮助咱们实现集中式的数据分析和数据共享。在平常应用中咱们好比要将各类数据采集到HDFS存储服务中去,说到将数据采集到HDFS,咱们熟知的框架包括:mysql

  • Apache Sqoop
  • Apache Flume
  • Gobblin DataX
  • Kettle

以及其余不少针对特定数据源的采集工具:好比针对Cassandra数据源的Aegisthus,针对mongodb的mongo-hadoop等等。sql

本文就对以上常见的数据采集服务进行简单的介绍,帮助咱们了解各个项目的特色以及适用场景。mongodb

Apache Sqoop

Sqoop : SQL-to-Had oop,用于在关系型数据库(RDBMS)和HDFS之间互相传输数据。数据库

Sqoop 启用了一个MapReduce任务来执行数据采集任务,传输大量结构化或半结构化数据的过程是彻底自动化的。其主要经过JDBC和关系数据库进行交互,理论上支持JDBC的Database均可以使用Sqoop和HDFS进行数据交互。apache

Sqoop目前分为两个版本Sqoop1和Sqoop2。这是两个彻底不一样的版本,彻底不兼容。Sqoop1了解的朋友都知道它就是一个命令行脚本,而Sqoop2相比Sqoop1引入了sqoop server,集中化的管理Connector,引入基于角色的安全机制,并且支持多种访问方式:cli客户端,Web ui和Rest API。安全

Sqoop不支持文件解析入库,适用于关系型数据库与HDFS/Hive/HBase之间互相传输数据。它支持多种关系型数据库如mysql、oracle、postgresql。能够高效可控的进行数据导入导出。架构

Github Star 462, Fork 362oracle

Apache Flume

Apache Flume是一个分布式、可靠、高可用的日志收集系统,支持各类各样的数据来源,如http,log文件,监听端口数据等等,将这些数据源的海量日志数据进行高效收集、聚合、移动,最后存储到指定存储系统中(可扩展),如kafka、HDFS分布式文件系统、Solr,HBase等。框架

Flume基于流式数据,适用于日志和事件类型的数据收集,重构后的Flume-NG版本中一个agent(数据传输流程)中的source(源)和sink(目标)之间经过channel进行连接,同一个源能够配置多个channel。多个agent还能够进行连接组合共同完成数据收集任务,使用起来很是灵活。

Github Star 1418, Fork 1092

Gobblin

Gobblin是用来整合各类数据源的通用型ETL框架,在某种意义上,各类数据均可以在这里“一站式”的解决ETL整个过程,专为大数据采集而生。

做为一个通用框架,Gobblin的接口封装和概念抽象作的很好,做为一个ETL框架使用者,咱们只须要实现咱们本身的Source,Extractor,Conventer类,再加上一些数据源和目的地址之类的配置文件提交给Gobblin就好了。Gobblin相对于其余解决方案具备广泛性、高度可扩展性、可操做性。

Github Star 1381, Fork 540

DataX

DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各类异构数据源之间稳定高效的数据同步功能。

被阿里开源以后的DataX社区并不活跃,可是好在程序的架构设计的好,大部分用户都会选择fork以后基于其进行二次开发。DataX自己由阿里开发对于阿里自身的数据库好比ODPS、ADS等支持更好。

Github Star 1128, Fork 478

Kettle

Kettle是一款开源的ETL工具,纯java编写,能够在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。它容许你管理来自不一样数据库的数据,经过提供一个图形化的用户环境来描述你想作什么,而不是你想怎么作。

Kettle 中文名称叫水壶,寓意就是但愿把各类数据放到一个壶里,而后以一种指定的格式流出。

Kettle是CS架构,拥有本身的管理控制台,一样也能够经过Java代码与咱们的工程进行集成,在程序中完成kettle的转换、执行等操做。

Github Star 1956, Fork 1476

本文简单介绍了上面几种数据采集框架,当咱们使用的时候须要考虑到业务场景,关系库相关采集的能够首选sqoop。日志文件等实时采集录入则选择Flume,文件和数据库都要兼顾则选择Gobblin。后续会对这三类进行详细介绍。至于DataX能够看看其架构,设计思想很是不错。

欢迎关注我:叁金大数据(不稳定持续更新~~~)
qrcode.jpg

相关文章
相关标签/搜索