这份代码是Apache Flume-NG v1.7的代码,自己想要读一下Flume的代码就fork了一份,同时在读的过程中就直接在代码里添加注释,感觉直接在代码里加注释,想到什么就写下什么是一种很Nice的做法,能够增加自己代码阅读乐趣,另外还有一些自己从网上搜集的资料和自己的一些总结的文档放在https://github.com/thesunnysky/markdowns/tree/master/flume 文件夹下.
不得不说的是这仅仅是自己在阅读的过程中个人对代码的理解,里面的严谨和缜密肯定有很多做的不到位,对代码的理解也未必是准确无误的,如果发现有任何的纰漏的地方,欢迎指出,谢谢.
联系方式:[email protected]
Apache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. The system is centrally managed and allows for intelligent dynamic management. It uses a simple extensible data model that allows for online analytic application.
The Apache Flume 1.x (NG) code line is a refactoring of the first generation Flume to solve certain known issues and limitations of the original design.
Apache Flume is open-sourced under the Apache Software Foundation License v2.0.
Documentation is included in the binary distribution under the docs directory. In source form, it can be found in the flume-ng-doc directory.
The Flume 1.x guide and FAQ are available here:
- Mailing lists: https://cwiki.apache.org/confluence/display/FLUME/Mailing+Lists
- IRC channel #flume on irc.freenode.net
Bug and Issue tracker.
Compiling Flume requires the following tools:
- Oracle Java JDK 1.7
- Apache Maven 3.x
Note: The Apache Flume build requires more memory than the default configuration. We recommend you set the following Maven options:
export MAVEN_OPTS="-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m"
To compile Flume and build a distribution tarball, run mvn install
from the
top level directory. The artifacts will be placed under flume-ng-dist/target/
.