apache flume介绍

30
Apache Flume 2013.5.29 浩松

Upload: haosdent-huang

Post on 27-Jun-2015

2.083 views

Category:

Technology


8 download

DESCRIPTION

the introduction document of Apache flume

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的读写安全控制