Apache flume介绍
-
Upload
haosdent-huang -
Category
Technology
-
view
2.083 -
download
8
description
Transcript of Apache flume介绍
Apache Flume2013.5.29 ⻩黄浩松
Flume的架构
Flume结点的⾓角⾊色
•Node节点,按⾓角⼜又分Agent和Collector
•Master节点
Node结点•指逻辑节点。⼀一个物理节点(JVM实例)上可以包含多个逻辑节点,并且可以绑定或解绑逻辑节点到某个特定的物理节点。
•每个逻辑节点会向master报告执⾏行状态,配置,发送⼼心跳。
JVM
Agent Node
Collector Node
Agent
•agent通过指定的source来接受数据流,并通过指定的sink转发给collector。
Agentsource
sink
Collectorsource
sink
Collector
•collector聚合多个agent的数据流,并传输到指定的输出
Agentsource
sink
Collectorsource
sink
Collector与Agent的对应
•可⼿手动指定,也可⾃自动匹配•⾃自动匹配的情况下,master会平衡collector之间的负载
Event
•event是Flume中数据的最⼩小表⽰示单元。 Agent
metadata
body
Unix timestamp
Nanosecond timestamp
Priority
Source host
Event
流之间的隔离措施
•为将所有的source加标签,使⽤用⽤用相同的管道同时进⾏行传输,最终经过分离后传送到不同的⺫⽬目的地。•另⼀一种为阻塞型,任意时刻只能有⼀一个数据流在传输。
Source种类•Tiered Event Source•由master或配置⽂文件提供参数,⽤用于node之间传输
•Logical Source•信息不完全⽽而且抽象的source,由master⾃自动管理,当
master获取到⾜足够的信息时会将其转换为rpcSource
•Basic Source
Source机制
•Push数据到Flume
•令Flume不断Polling数据•Embedding,即在应⽤用程序中嵌⼊入Flume组件
Sink的种类•Tiered Event Sink•由master或配置⽂文件提供参数,⽤用于node之间传输
•Logical Sink•信息不完全⽽而且抽象的sink,由master⾃自动管理,当master获取到⾜足够的信息时会将其转换为rpcSink
•Basic Sink
Sink的种类•Special Sink• Fan out
• [sinkA, sinkB] 表⽰示同时往sinkA,sinkB写数据
• Fail over
• [sinkA ? sinkB] 表⽰示写sinkA失败时尝试写sinkB
• Roll
• roll(A) text("file-%{rolltag}")
• 表⽰示每隔A秒关闭当前sink实例,再开另外⼀一个sink实例继续往另⼀一个⽂文件写内容
Sink的输出格式
•有avro,json,log4j等•可先设置压缩,再写⼊入HDFS
Sink的装饰器
•可通过sink decorators对sink中的event进⾏行控制。•如增⼤大,过滤或压缩其中的event。•可⾃自定义装饰器。
Master结点
•管理所有结点的配置•跟踪数据流的最后确认信息,并通知agent
多个Master
•在多个master的情况下,当有⼀一个master失败后,其他master会接管它的⼯工作并保证所有正在传输的数据流正常运⾏行。•借助zookeeper管理
Master⽂文件存储
•临时存于内存•只能单Master
•重启Master及Master错误退出均会配置⽂文件丢失
•基于zookeeper持久化地存储
Flume的可靠性
Agent的可靠性
•两种可靠的Silk
•agentE2ESink•使⽤用预先⽇日志和确认信息来保证数据正确传输
•agentDFOSink•检测到collector失败的时候,先将数据写到磁盘
•当collector恢复或有其他可⽤用collector时,继续传输
Agent的可靠性
•故障转移,由master控制•autoE2EChain
•autoDFOChain
•autoBEChain
HDFS冗余
•collector在⼀一定时间间隔后(默认30s)会关闭HDFS⽂文件,并创建⼀一个新的⽂文件继续写数据•当HDFS⽂文件为关闭的情况下,HDFS的冗余策略才能正常实施
Flume的可管理性
⺴⽹网⻚页
控制台
Flume的可拓展性
可拓展性
•source,sink,decorators均可⾃自定义
Flume的安全控制
安全控制
•可借助kerberized HDFS服务,实现HDFS的读写安全控制