当前位置 博文首页 > Shockang的博客:Flume 是什么?Flume 有什么特点?
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
Flume 原是 Cloudera 公司提供的一个高可用的、高可靠的、分布式海量日志采集、聚合和传输系统,而后纳人到了 Apache 旗下,作为一个顶级开源项目。
Apache Flume 不仅只限于日志数据的采集,由于 Flume 采集的数据源是可定制的,因此 Flume 还可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。
当前 Flume 分为两个版本: Flume 0.9x 版本,统称 Flume-og ( original generation )和 Flume 1.x 版本,统称 Flume-ng ( next generation )。
由于早期的 Flume-og 存在设计不合理、代码臃肿、不易扩展等问题,因此在 Flume 纳入到 Apache 旗下后,开发人员对 Cloudera Flume 的代码进行了重构,同时对 Flume 功能进行了补充和加强,并重命名为 Apache Flume
于是就出现了 Flume-ng 与 Flume-og 两种截然不同的版本。
而在实际开发中,多数使用目前比较流行的 Flume-ng 版本进行 Flume 开发。
Flume 的本意(非技术概念)是通过修建渠道,利用渠道的引流能力来从山上运输木材。
这些渠道可以实现远距离、快速、高效且低成本地运输木材。
虽然最初的主要目的是运输木材,但是这些渠道其实可用于传输各种各样的材料。
正如 Flume 这个名词的本意,这项技术可以从数据源传输大量数据到目的地。
与物理上的水槽类似, Flume 这项技术也是为了传输累积在各个服务器(或者其他软件组件)中的日志数据而构建的,并将这些数据聚合起来以供整合分析。
后来,它被扩展以支持不同的数据源和目的地。
Flume 采用了插拔式软件架构,所有组件均是可插拔的,用户可以根据自己的需要定制每个组件。
Flume 本质上是一个中间件,它屏蔽了流式数据源和后端中心化存储系统之间的异构性,使得整个数据流非常容易扩展和演化。
Flume 最初是 Cloudera 工程师开发的日志收集和聚集系统,后来逐步演化成支持任何流式数据收集的通用系统。
总结起来, Flume 主要具备以下几个特点: