问题导读:
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的数据采集框架的更多相关文章

  1. Hadoop MapReduceV2(Yarn) 框架简介[转]

    对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者可参考 Hadoop 官方简介.使用和学习过老 H ...

  2. Hadoop MapReduceV2(Yarn) 框架简介

    http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详 ...

  3. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...

  4. Hadoop的Python框架指南

    http://www.oschina.NET/translate/a-guide-to-Python-frameworks-for-Hadoop 最近,我加入了Cloudera,在这之前,我在计算生物 ...

  5. Hadoop 新 MapReduce 框架 Yarn 详解【转】

    [转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/] 简介: 本文介绍了 Hadoop 自 0.23.0 版本 ...

  6. 数据采集框架Gobblin简介

    问题导读: Gobblin的架构设计是怎样的? Gobblin拥有哪些组建,如何实现可扩展? Gobblin采集执行流程的过程? 前面我们介绍Gobblin是用来整合各种数据源的通用型ETL框架,在某 ...

  7. Hadoop 之 MapReduce 框架演变详解

    经典版的MapReduce 所谓的经典版本的MapReduce框架,也是Hadoop第一版成熟的商用框架,简单易用是它的特点,来看一幅图架构图: 上面的这幅图我们暂且可以称谓Hadoop的V1.0版本 ...

  8. 更快、更强——解析Hadoop新一代MapReduce框架Yarn(CSDN)

    摘要:本文介绍了Hadoop 自0.23.0版本后新的MapReduce框架(Yarn)原理.优势.运作机制和配置方法等:着重介绍新的Yarn框架相对于原框架的差异及改进. 编者按:对于业界的大数据存 ...

  9. Hadoop的RPC框架介绍

    为什么会引入RPC: RPC采用客户机/服务器模式.请求程序就是一个客户机,而服务提供程序就是一个服务器.当我们讨论HDFS的,通信可能发生在: Client-NameNode之间,其中NameNod ...

随机推荐

  1. js转xml时 将xml中不需要的字符替换掉的方法replace()

    js中 replace(/\//g, '') 什么作用. 正则表达式 replace(/\//g, '') 的作用是把/替换成''. 用法如下: 比如:var aa= "adsdd/sdsd ...

  2. Ubuntu 16.04修改显示字体大小(包括GNOME/Unity)

    在Ubuntu中字体都基本偏大,且和分辨率无关. Unity: 安装Unity Tweak Tool sudo apt-get install unity-tweak-tool GNOME: 打开优化 ...

  3. Memcached与Spring集成的方式(待实践)

    主要是基于这几种方式http://www.cnblogs.com/EasonJim/p/7624822.html去实现与Spring集成,而个人建议使用Xmemcached去集成好一些,因为现在官方还 ...

  4. Android GIS开发系列计划

    本系列博客的整理与写作计划如下,计划3个月(至2018.2)完成. 第一部分, 入门季 第二部分, Android基础季 第三部分, Data Flow 季 第四部分, 可视化季 第五部分, GIS常 ...

  5. mssql存储过程异常处理

    MSSQL2000和MSSQL2005以上版本的异常处理语法是不相同的. SQL Server 2005以上版本支持结构化异常处理,而MSSQL2000是不支持的. 1)先看MSSQL 2000的异常 ...

  6. NYOJ 题目42 一笔画问题(欧拉图)

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 zyc从小就比較喜欢玩一些小游戏.当中就包含画一笔画.他想请你帮他写一个程序.推断一个图是否可以用一笔画下 ...

  7. samba服務器下文件夾chmod權限技巧

    需要的效果: samba下文件夹(abc)不可以被重命名.不可以被刪除,其所有子目录可读可写. 如何做到: chmod 777 -R abc   # -R 使得abc下所有数据继承可读可写权限 chm ...

  8. 86. LotusScript中的数组函数

    R6对LotusScript有一些改进和增强,自那之后.Notes对象的接口时有补充和更新,但语言本身没有变化.那些改进就包括添加诸如ArrayGetIndex.ArrayUnique的实用函数. 但 ...

  9. 从Linux内核升级的必要性说开去

    Linux内核更新超级频繁,可是有必要时刻升级吗?个人感觉没有必要,可是你要时刻关注新特性列表,然后把自己的内核升级到离最新版本号差一两个月公布的版本号而不是最新版本号.以保证稳定性,由于一两个月的时 ...

  10. Delphi中SendMessage使用说明(所有消息说明) good

    Delphi中SendMessage使用说明 SendMessage基础知识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数Po ...