flume 采集写入hbase速度越来越慢_flume 进阶 0338

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第1张图片

Flume事务

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第2张图片

Put 事务流程

doPut:将批数据先写入临时缓冲区 putList

doCommit:检查 channel 内存队列是否足够合并

doRollback:channel 内存队列空间不足,回滚数据

Take 事务流程

doTake:将数据取到临时缓冲区 takeList,并将数据发送到 HDFS

doCommit:如果数据全部发送成功,则清除临时缓冲区 takeList

doRollback:数据发送过程中如果出现异常,rollback 将临时缓冲区 takeList 中的数据归还给 channel 内存队列

Flume Agent内部原理

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第3张图片

重要组件:

4)Channel Selector

Channel Selector 的作用就是选出 Event 将要被发往哪个 Channel。共有两种类型,分别是 Replicating Channel Selector (default)(复制)和 Multiplexing Channel Selector(多路复用)。

Replicating Selector 会将 source 过来的每一个 Event 发往所有的 Channel,Multiplexing 会根据相应的原则,将不同的 Event 发往不同的 Channel。

7)Sink Processor

Sink Processor 共有三种类型,分别是 Default Sink ProcessorLoad Balancing Sink ProcessorFailover Sink Processor

Default Sink Processor 对应的是单个的 Sink,Load Balancing Sink Processor 和 Failover Sink Processor 对应的是 Sink Group。

Load Balancing Sink Processor 可以实现负载均衡的功能,Failover Sink Processor 可以实现故障转移的功能。

Flume拓扑结构

简单串联

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第4张图片

Flume Agent连接

这种模式是将多个flume顺序连接起来了,从最初的source开始到最终sink传送的目的存储系统。此模式不建议桥接过多的flume数量, flume数量过多不仅会影响传输速率,而且一旦传输过程中某个节点flume宕机,会影响整个传输系统

复制和多路复用

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第5张图片

Flume支持将事件流向一个或者多个目的地。这种模式可以将相同数据复制到多个channel中,或者将不同数据分发到不同的channel中,sink可以选择传送到不同的目的地。

负载均衡和故障转移

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第6张图片

Flume支持使用将多个sink逻辑上分到一个sink组,sink组配合不同的SinkProcessor可以实现负载均衡和错误恢复的功能。

聚合

flume 采集写入hbase速度越来越慢_flume 进阶 0338_第7张图片

这种模式是我们最常见的,也非常实用,日常web应用通常分布在上百个服务器,大者甚至上千个、上万个服务器。产生的日志,处理起来也非常麻烦。用flume的这种组合方式能很好的解决这一问题,每台服务器部署一个flume采集日志,传送到一个集中收集日志的flume,再由此flume上传到hdfs、hive、hbase等,进行日志分析。

你可能感兴趣的:(flume,采集写入hbase速度越来越慢)