您的位置:首页 > 编程语言

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

2016-06-05 09:59 417 查看
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之核心架构深入解析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: