Flume入门以及常见分布式架构搭建

Flume作为大数据传输工具,专注于高可靠性日志采集。本文介绍了Flume的基本架构,包括Source、Channel和Sink,以及它们之间的事务管理。此外,讨论了Processor、Interceptor和Channel Selector的角色,展示了常见的拓扑结构如串联、多路复用、故障转移和聚合。最后,提到了自定义Interceptor、Source和Sink的实现,以及如何配置实现负载均衡和故障转移。
摘要由CSDN通过智能技术生成

Flume

 

 

引言

大数据要解决三件事,存储,传输,计算。Flume的定位是在传输这一块,其需求是采集不同框架,集群的日志,要求是高可靠性。比如后端程序一般不和大数据框架部署在同一个集群,但是作为数据平台,我们需要事实获取到相关程序的日记、记录、数据等等,例如电商系统,用户点击的瞬间已经开始计算下一次推荐。

基本架构

  • flume的基本存在是一个Agent,这是一个jvm进程
  • 通过三个模块来管理数据传输的功能,分别是source,负责输入源对接,sink负责输出目标对接,channel负责传输工作

Flume内部工作流程

事务

Source,Channel,Sink之间的传输单元为Event,推送和拉取事件由事务管理。

  • Put事务,将数据写入putList,提交,channel提交失败进行回滚
  • take事务,将数据读入takeList

Processor

除此之外,Flume中还使用Processor来对Event进行过滤,通道选择,Sink输出形式等操作。

  • 拦截器,对事件进行处理
  • Channel Selector
    • Replicating,重复
    • Multiplexing,多路
  • Sink Processor
    • DefaltSinkProcessor,默认,单一
    • LoadBalancingSinkProcessor,负载均衡
    • FailoverSinkProcessor,故障转移

常见拓扑结构

Agent串联, 常用,相当于不同集群的日志传输代理。

多路复用

故障转移

聚合,非常常用,例如多框架日记收集聚合。

 

Flume架构搭建

 

 

自定义Interceptor

按照

source的event发送给interceptor,然后再转发给channel selector。

需要在配置文件里申明自定义interceptor

a1.sources.r1.interceptors = i1

a1.sources.r1.interceptors.i1.type = com.atguigu.flume.interceptor.CustomInterceptor$Builder

a1.sources.r1.selector.type = multiplexing

a1.sources.r1.selector.header = type

a1.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值