开源工具介绍之Flume

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Z_J_T/article/details/83243891

是什么?

一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输系统。

功能

  • 收集数据
  • 对数据简单处理,并写到数据接收方的能力

介绍一下flume的主要组件:

Flume的运行核心是Agent。(一个完整的数据收集工具)
Agent主要由source,channel,sink三个组件组成。一个Agent包含多个sources和sink。允许多个Agent连接在一起成多级跳。

  • source从client收集数据,传递给channel。不同的source,可以接收不同的数据格式。
  • sink从channel收集数据,运行在一个独立线程,消费channel中的数据,然后送给外部源或者其他source
  • channel连接sources和sinks,作为一个存储区。接收source的输出,由sink消费channel的数据。channel中的数据直到进入到下一个channel中或者进入终端才会被删除。当sink写入失败后,可以自动重启,不会造成数据丢失,因此很可靠。

不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS, HBase,甚至是另外一个Source等等。

还有一些其他的组件:

  • client:生产数据,运行在一个独立线程。
  • Events:Flume传输的数据的基本单位。可以是日志记录,对象等。可以从一个地方流向另一个地方,为了保证传输一定成功,在送到目的地之前会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。

数据流模型

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Z_J_T/article/details/83243891