探究Flume

Flume的运行机制

讲述的为Flume运行原理(但是没有注上源码讲解)

Flume--大数据环境中的搬运工,是非常重要的一环,对它的深入研究可以更加的优化我们的项目,

 

首先从flume的官网中我得到了一张图

Flume的基本架构

从官方给的这张图来看,flume的基本组件为Source-Channel-Sink,首先我先从纯字面上理解,他们三是干什么的,Source(从哪里获得),Channel(通道),Sink(沉槽)

其实他们的字面意思与他们的功能是大体相致的。

Flume的数据单位是event

Source:读取数据的组件,数据收集的作用

Channel:管道,数据流通道

Sink:数据发送

好的了,闲话少说,我们直接上图

 

我对上图的理解就是三个基本,一拦,一选,一处理

三个基本没什么好说的就是source,channel,sink

一拦:就是拦截器,拦截器是很重要的,在实际开发中

  1. 我们利用拦截器做一些简单的ETL处理(但不宜做复杂的,毕竟做传输用的)
  2. 我们可以在拦截器中根据event(事件)的Body不同的特点添加入不同的header,便让下一级的选择器将event根据我们在此所添加的header分入不同的channel中

一选:就是选择器,选择器厂家为我们提供了两种选择器

  1. 默认的选择器,event发给各个channel
  2. Multiplexing Channel Selector,多路选择器(重要),根据conf文件中的配置,将相对应的header分给不同的channel

一处理:即Sink processor,厂家提供了三种

  1. 默认的Sink Processor 原则上就是传给一个Sink
  2. LoadBalancingSink Processor 负载均衡将event发给一个sink组(附:如果当sink组中的sink挂掉了,将如何处理呢?loadBalancing退避原则:如响应时间超过设定的时间,那么将此sink列入失败队列,这里有意思的就是:它的判定失败的时间将呈指数型增长)
  3. Failover 处理器,高可用,在一个sink组,只有一个sink工作,其余的都是standby,当工作的action挂掉以后,启动一个standby继续工作

Flume事务

看图直观;

 

由上图可知:flume是具有事务的,因此它是不会丢数据的高可靠数据传输框架

注:图上手写体为作者签名

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值