Flume源码分析—代码结构理解(四)

来源:互联网 发布:淘宝第三方运营商 编辑:程序博客网 时间:2024/06/10 12:43

Flume源码涵盖的内容很多,但大家在读取Flume源码时可以去除枝叶,把握核心部分,可以有效的减轻源码分析的工作量。我使用的Flume-NG源码的版本为1.6.0,其他版本的源码可以参照分析。

根据Flume的基本原理,flume主要由source、sink以及channel三个组件组成,为了方便广大用户使用flume,flume项目组也是花了很多心思做了大量的组件来适配当前主流的源、目标以及channel。其源码中的包名如下所示,大家从包名中就很容易看出相应组件的作用。

source:/flume-avro-source/flume-jms-source/flume-kafka-source/flume-ng-legacy-sources/flume-ng-sources/flume-scribe-source/flume-thrift-source/flume-twitter-source
sink:/flume-dataset-sink/flume-hdfs-sink/flume-hive-sink/flume-irc-sink/flume-kafka-sink/flume-ng-elasticsearch-sink/flume-ng-hbase-sink/flume-ng-kafka-sink/flume-ng-morphline-solr-sink/flume-ng-sinks
channel:/flume-file-channel/flume-jdbc-channel/flume-ng-channels/flume-spillable-memory-channel

flume在组织这些组件是通过event来进行消息的传递,flume源码的核心功能在于根据配置文件来调用相应的source、channel、sink来进行消息的流转。分析源码时可以先选择flume源码的核心来理解整个平台的工作流程,从而加深对flume的理解。

flume整体框架的核心在于以下几个包,当然个别包也只是起到一定的辅助作用。

/flume-ng-node/flume-ng-sdk/flume-ng-auth/flume-ng-configuration/flume-ng-core/flume-ng-dist/flume-parent/flume-tools

后续将对flume的核心框架进行分析。
内容参考:
Flume-NG源码分析-整体结构及配置载入分析
玩转Flume之核心架构深入解析

0 0
原创粉丝点击