Top Banner
Apache Flume 2013.5.29 浩松
30

Apache flume介绍

Jun 27, 2015

Download

Technology

Haosdent Huang

the introduction document of Apache flume
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Apache flume介绍

Apache Flume2013.5.29 ⻩黄浩松

Page 2: Apache flume介绍

Flume的架构

Page 3: Apache flume介绍

Flume结点的⾓角⾊色

•Node节点,按⾓角⼜又分Agent和Collector

•Master节点

Page 4: Apache flume介绍

Node结点•指逻辑节点。⼀一个物理节点(JVM实例)上可以包含多个逻辑节点,并且可以绑定或解绑逻辑节点到某个特定的物理节点。

•每个逻辑节点会向master报告执⾏行状态,配置,发送⼼心跳。

JVM

Agent Node

Collector Node

Page 5: Apache flume介绍

Agent

•agent通过指定的source来接受数据流,并通过指定的sink转发给collector。

Agentsource

sink

Collectorsource

sink

Page 6: Apache flume介绍

Collector

•collector聚合多个agent的数据流,并传输到指定的输出

Agentsource

sink

Collectorsource

sink

Page 7: Apache flume介绍

Collector与Agent的对应

•可⼿手动指定,也可⾃自动匹配•⾃自动匹配的情况下,master会平衡collector之间的负载

Page 8: Apache flume介绍

Event

•event是Flume中数据的最⼩小表⽰示单元。 Agent

metadata

body

Unix timestamp

Nanosecond timestamp

Priority

Source host

Page 9: Apache flume介绍

Event

Page 10: Apache flume介绍

流之间的隔离措施

•为将所有的source加标签,使⽤用⽤用相同的管道同时进⾏行传输,最终经过分离后传送到不同的⺫⽬目的地。•另⼀一种为阻塞型,任意时刻只能有⼀一个数据流在传输。

Page 11: Apache flume介绍

Source种类•Tiered Event Source•由master或配置⽂文件提供参数,⽤用于node之间传输

•Logical Source•信息不完全⽽而且抽象的source,由master⾃自动管理,当

master获取到⾜足够的信息时会将其转换为rpcSource

•Basic Source

Page 12: Apache flume介绍

Source机制

•Push数据到Flume

•令Flume不断Polling数据•Embedding,即在应⽤用程序中嵌⼊入Flume组件

Page 13: Apache flume介绍

Sink的种类•Tiered Event Sink•由master或配置⽂文件提供参数,⽤用于node之间传输

•Logical Sink•信息不完全⽽而且抽象的sink,由master⾃自动管理,当master获取到⾜足够的信息时会将其转换为rpcSink

•Basic Sink

Page 14: Apache flume介绍

Sink的种类•Special Sink• Fan out

• [sinkA, sinkB] 表⽰示同时往sinkA,sinkB写数据

• Fail over

• [sinkA ? sinkB] 表⽰示写sinkA失败时尝试写sinkB

• Roll

• roll(A) text("file-%{rolltag}")

• 表⽰示每隔A秒关闭当前sink实例,再开另外⼀一个sink实例继续往另⼀一个⽂文件写内容

Page 15: Apache flume介绍

Sink的输出格式

•有avro,json,log4j等•可先设置压缩,再写⼊入HDFS

Page 16: Apache flume介绍

Sink的装饰器

•可通过sink decorators对sink中的event进⾏行控制。•如增⼤大,过滤或压缩其中的event。•可⾃自定义装饰器。

Page 17: Apache flume介绍

Master结点

•管理所有结点的配置•跟踪数据流的最后确认信息,并通知agent

Page 18: Apache flume介绍

多个Master

•在多个master的情况下,当有⼀一个master失败后,其他master会接管它的⼯工作并保证所有正在传输的数据流正常运⾏行。•借助zookeeper管理

Page 19: Apache flume介绍

Master⽂文件存储

•临时存于内存•只能单Master

•重启Master及Master错误退出均会配置⽂文件丢失

•基于zookeeper持久化地存储

Page 20: Apache flume介绍

Flume的可靠性

Page 21: Apache flume介绍

Agent的可靠性

•两种可靠的Silk

•agentE2ESink•使⽤用预先⽇日志和确认信息来保证数据正确传输

•agentDFOSink•检测到collector失败的时候,先将数据写到磁盘

•当collector恢复或有其他可⽤用collector时,继续传输

Page 22: Apache flume介绍

Agent的可靠性

•故障转移,由master控制•autoE2EChain

•autoDFOChain

•autoBEChain

Page 23: Apache flume介绍

HDFS冗余

•collector在⼀一定时间间隔后(默认30s)会关闭HDFS⽂文件,并创建⼀一个新的⽂文件继续写数据•当HDFS⽂文件为关闭的情况下,HDFS的冗余策略才能正常实施

Page 24: Apache flume介绍

Flume的可管理性

Page 25: Apache flume介绍

⺴⽹网⻚页

Page 26: Apache flume介绍

控制台

Page 27: Apache flume介绍

Flume的可拓展性

Page 28: Apache flume介绍

可拓展性

•source,sink,decorators均可⾃自定义

Page 29: Apache flume介绍

Flume的安全控制

Page 30: Apache flume介绍

安全控制

•可借助kerberized HDFS服务,实现HDFS的读写安全控制