Apache Flume2013.5.29 ⻩黄浩松
Flume的架构
Flume结点的⾓角⾊色•Node节点,按⾓角⼜又分Agent和Collector•Master节点
Node结点• 指逻辑节点。⼀一个物理节点(JVM实例)上可以包含多个逻辑节点,并且可以绑定或解绑逻辑节点到某个特定的物理节点。• 每个逻辑节点会向master报告执⾏行状态,配置,发送⼼心跳。JVMAgent NodeCollector Node
Agent•agent通过指定的source来接受数据流,并通过指定的sink转发给collector。AgentsourcesinkCollectorsourcesink
Collector•collector聚合多个agent的数据流,并传输到指定的输出AgentsourcesinkCollectorsourcesink
Collector与Agent的对应•可⼿手动指定,也可⾃自动匹配•⾃自动匹配的情况下,master会平衡collector之间的负载
Event•event是Flume中数据的最⼩小表⽰示单元。AgentmetadatabodyUnix timestampNanosecond timestampPrioritySource host
Event
流之间的隔离措施•为将所有的source加标签,使⽤用⽤用相同的管道同时进⾏行传输,最终经过分离后传送到不同的⺫⽬目的地。•另⼀一种为阻塞型,任意时刻只能有⼀一个数据流在传输。
Source种类•Tiered Event Source• 由master或配置⽂文件提供参数,⽤用于node之间传输•Logical Source• 信息不完全⽽而且抽象的source,由master⾃自动管理,当master获取到⾜足够的信...
Source机制•Push数据到Flume•令Flume不断Polling数据•Embedding,即在应⽤用程序中嵌⼊入Flume组件
Sink的种类•Tiered Event Sink• 由master或配置⽂文件提供参数,⽤用于node之间传输•Logical Sink• 信息不完全⽽而且抽象的sink,由master⾃自动管理,当master获取到⾜足够的信息时会将其转换...
Sink的种类•Special Sink• Fan out• [sinkA, sinkB] 表⽰示同时往sinkA,sinkB写数据• Fail over• [sinkA ? sinkB] 表⽰示写sinkA失败时尝试写sinkB• Roll•...
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恢复或有其他可⽤用coll...
Agent的可靠性•故障转移,由master控制•autoE2EChain•autoDFOChain•autoBEChain
HDFS冗余•collector在⼀一定时间间隔后(默认30s)会关闭HDFS⽂文件,并创建⼀一个新的⽂文件继续写数据•当HDFS⽂文件为关闭的情况下,HDFS的冗余策略才能正常实施
Flume的可管理性
⺴⽹网⻚页
控制台
Flume的可拓展性
可拓展性•source,sink,decorators均可⾃自定义
Flume的安全控制
安全控制•可借助kerberized HDFS服务,实现HDFS的读写安全控制
Upcoming SlideShare
Loading in …5
×

Apache flume介绍

2,824 views

Published on

the introduction document of Apache flume

Published in: Technology

Apache flume介绍

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

×