Flume官网
文档查看地址:http://flume.apache.org/FlumeUserGuide.html
学习目标
1.会写conf文件,知道文件的格式是怎样的,遇到需求知道用什么组件,但是组件内部的元素可以不用记,去文档中查看。
2.会启动flume-agent进程
3.以上两点是比较基本的,当我们需要结合场景应用Flume的时候就需要我们了解Flume的内部原理从而优化它。
Flume基础架构概述

基础架构包括source,channel,sink,agent,event这几个组件
source负责从日志数据所在服务器读取数据,并转换为一个个Event对象。
channel负责将source的Event对象存储处理。
sink从channel处理的数据中拿到对象并写入到目的地。
整个事件运行在agent进程上。
Event包含Header和Body,Header存放数据的属性,Body存放数据内容。
source、channel和sink都有多种分类。
比如source有 netcat source(从端口读数据), exec source(执行linux命令) ,spooling directory source (监控目录下的新文件)
taildir source (监控目录下多个追加文件)
channel 有file channel(将所有事 件写入到磁盘,在程序关机不会丢失数据,容量大) 和memory channel(在内存中运行,如果关机或重启会导致数据丢失,性能好)
sink有logger sink和hdfs sink等, 但是最合适的是放在hdfs上,毕竟HDFS就是用来存储数据的嘛!
Agent 内部原理

重要组件:
1)ChannelSelector
ChannelSelector的作用就是选出Event将要被发往哪个Channel。其共有两种类型,分别是Replicating(复制)和Multiplexing(多路复用)。
ReplicatingSelector会将同一个Event发往所有的Channel,Multiplexing会根据相应的原则,将不同的Event发往不同的Channel。
2)SinkProcessor
SinkProcessor共有三种类型,分别是DefaultSinkProc

最低0.47元/天 解锁文章
1799

被折叠的 条评论
为什么被折叠?



