FLUME介绍

前段时间使用了flume 1.7,感觉flume写的挺好的,打算学习下源代码。
当前的版本为1.7.0。

简介

Flume是一个分布式的开源数据收集系统,使用起来简单方便,性能也不错。

官网:https://flume.apache.org/

逻辑结构

  • Source负责数据的收集,flume有各种各样的source。总体来分为轮训拉取(PollableSource)和事件驱动(EventDrivenSource)两种类型。
  • Channel是夹在source和sink中间的插件,负责缓冲,最常用的应该是memorychannel和filechannel。
  • Sink负责将数据从channel转移到其他存储中。

代码整体结构

从Flume的源码结构来开,它分为下面几个模块:

FLUME MODEL EXPLAIN
flume-ng-auth Flume 的权限控制模块,为Rpc和Thrift提供访问权限控制。
flume-ng-channels 各种通道的实现
flume-ng-clients 实现了log4j相关的几个Appender
flume-ng-configuration Flume配置信息相关的类
flume-ng-core flume整个核心框架,包括了各个模块的接口以及逻辑关系实现,和一些老的component
flume-ng-embedded-agent 提供一种方式将简单的agent嵌入到应用中
flume-ng-legacy-sources 提供arvo和thrift 两个source
flume-ng-node 实现启动flume的一些基本类
flume-ng-sdk flume的api接口,event 的定义就在里面
flume-ng-sinks 各种sinks的实现
flume-ng-sources 各种sources的实现

参考

  1. Flume-NG源码分析-整体结构及配置载入分析
原文地址:https://www.cnblogs.com/SpeakSoftlyLove/p/6344578.html