【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构

1 Flume事务

【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构_第1张图片

2 Flume Agent 内部原理

【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构_第2张图片
重要组件:
1、ChannelSelector(选择器)
  ChannelSelector 的作用就是选出 Event 将要被发往哪个 Channel。
  (1)Replicating ChannelSelector(复制或副本):将同一个 Event 发往所有的 Channel。
  (2)Multiplexing ChannelSelector(多路复用):根据相应的原则,将不同的 Event 发往不同的 Channel。

2、SinkProcessor(sink组)
  (1)DefaultSinkProcessor:对应的是单个的 Sink.
  (2)LoadBalancingSinkProcessor(负载均衡):假设一个channel绑定了多个sink,由于数据由sink主动拉取,首先由channel以轮询的方式询问sink有没有数据拉取,有即拉走。
  (3)FailoverSinkProcessor(故障转移即高可用):假设一个channel绑定了多个sink,首先对多个sink配置优先级,优先级最高的sink先拉取数据,假设该sink在拉取数据的过程中挂掉了,则由第二个优先级高的sink拉取数据替代挂掉的sink工作。

3 Flume拓扑结构

3.1 简单串联

【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构_第3张图片
  多个flume在端口出顺序连接,从最初的 source 开始到最终 sink 传送的目的存储系统。
  此模式不建议桥接过多的 flume 数量, flume 数量过多不仅会影响传输速率,而且一旦传输过程中某个节点 flume 宕机,会影响整个传输系统。

3.2 复制和多路复用

【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构_第4张图片
  Flume 支持将事件流向一个或者多个目的地。这种模式可以将相同数据复制到多个 channel 中,或者将不同数据分发到不同的 channel 中,sink 可以选择传送到不同的目的地。

3.3 负载均衡和故障转移

【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构_第5张图片
  Flume 支持使用将多个sink 逻辑上分到一个sink 组,sink 组配合不同的SinkProcessor可以实现负载均衡和错误恢复的功能。

3.4 聚合

【大数据之Flume】三、Flume进阶之Flume Agent 内部原理和拓扑结构_第6张图片
  最常用的模式,日常 web 应用通常分布在多个服务器,用 flume 的聚合方式,每台服务器部署一个 flume 采集日志,传送到一个集中收集日志的flume,再由此 flume 上传到 hdfs、hive、hbase 等,进行日志分析。

你可能感兴趣的:(flume,大数据,flume)