码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop的数据采集框架

时间:2018-09-13 23:14:12      阅读:459      评论:0      收藏:0      [点我收藏+]

标签:load   中文名   serve   obb   tor   而不是   高可用   阿里   数据传输   

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

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

  • Apache Sqoop
  • Apache Flume
  • Gobblin DataX
  • Kettle

以及其他很多针对特定数据源的采集工具:比如针对Cassandra数据源的Aegisthus,针对mongodb的mongo-hadoop等等。

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

Apache Sqoop

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

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

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 362

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可以看看其架构,设计思想非常不错。

欢迎关注我:叁金大数据(不稳定持续更新~~~)
技术分享图片

Hadoop的数据采集框架

标签:load   中文名   serve   obb   tor   而不是   高可用   阿里   数据传输   

原文地址:https://www.cnblogs.com/jixin/p/9643778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!