前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

在这里插入图片描述

Flume 是什么?

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 本质上是一个中间件,它屏蔽了流式数据源和后端中心化存储系统之间的异构性,使得整个数据流非常容易扩展和演化。

Flume 最初是 Cloudera 工程师开发的日志收集和聚集系统,后来逐步演化成支持任何流式数据收集的通用系统。

Flume 的特点

总结起来, Flume 主要具备以下几个特点:

  1. 良好的扩展性: Flume 架构是完全分布式的,没有任何中心化组件,这使得它非常容易扩展。
  2. 高度定制化:各个组件(比如 Source 、 Channel 和 Sink 等)是可插拔的,用户很容易根据需求进行定制。
  3. 声明式动态化配置: Flume 提供了一套声明式配置语言,用户可根据需要动态配置一个基于 Flume 的数据流拓扑结构。
  4. 语意路由:可根据用户的设置,将流式数据路由到不同的组件或存储系统中,这使得搭建一个支持异构的数据流变得非常容易。
上一篇 下一篇