Flume笔记三之Inteceptor,selector,processor

Flume NG 学习笔记(七)Sink Processors(故障转移与负载均衡)测试 Sink groups允许组织多个sink到一个实体上。 Sink processors能够提供在组内所有Sink之间实现负载均衡的能力,而且在失败的情况下能够进行故障转移从一个Sink到另一个Sink。 简单的说就是一个source 对应一个Sinkgroups,即多个sink,这里实际上与第六节的复用/复制情况差不多,只是这里考虑的是可靠性与性能,即故障转移与负载均衡的设置。 下面是官方配 阅读详情

Flume笔记三之Inteceptor,selector,processor

原创  2016年11月20日 20:18:28
  • 287
Inteceptor

    在flume中可以针对source定义拦截器,通过拦截器可以加入指定的信息然后在event的headers中就可以看到我们指定的信息。

    拦截器种类:

    Timestamp Interceptor

          在headers中加一个时间戳可以知道日志的时间便于后期处理。

   Host Interceptor

          将当前source所在主机的ip加入headers中。

          type:拦截器的类型,必须为host

          preserveExisting:如果此拦截器增加的key已经存在,如果这个值设置为true则保持原来的值,否则覆盖原来的值。默认为false

          useIP:如果设置为true则使用ip地址,否则使用主机名,默认为true

          hostHeader:使用的header的key名字,默认为host

 

   Static Interceptor

          固定一些key,value,source过来的数据经过此拦截器时就会被打上此标志。

          type:avrosource的类型,必须是static。

          preserveExisting:如果此拦截器增加的key已经存在,如果这个值设置为true则保持原来的值,否则覆盖原来的值。默认为false

          key:静态拦截器添加的key的名字

          value:静态拦截器添加的key对应的value值

 

   UUIDInterceptor

       指定一个全球唯一的标识。

    Searchand Replace Interceptor

       查找并替换数据中的内容。

   RegexExtractor Interceptor

        正则表达式

 

以下在一个agent中加入source拦截器,在event的headers中加入时间戳和source所在主机的ip。

以下是拦截器的配置实例,配置了两个拦截器一个时间戳一个host

#定义两个拦截器

a1.sources.r1.interceptors=i1 i2

#配置定义的拦截器

a1.sources.r1.interceptors.i1.type=host

a1.sources.r1.interceptors.i1.preserveExisting=false

a1.sources.r1.interceptors.i1.hostHeader=hostname

 

a1.sources.r1.interceptors.i2.type=timestamp


selector

    渠道选择器,在实际应用中我们可能有一个source向两个以上的channel发送数据这样就需要使用选择器,选择器通过判断event的header中的key来决定向那个channel发送数据,默认情况下source会向所有的channel发送数据。

    Multiplexing Channel Selector 根据header的key的值分配channel

    selector.type 默认为replicating

    selector.header:选择作为判断的key

    selector.default:默认的channel配置

    selector.mapping.*:匹配到的channel的配置

 

以下是配置代码

a1.sources.r1.channels= c1 c2

a1.sources.r1.selector.type= multiplexing

a1.sources.r1.selector.header= hostname

a1.sources.r1.selector.mapping.192.168.1.155=c1

a1.sources.r1.selector.default= c2

 

以下是选择器的配置实例,这是我的一个配置文件,配置了两个channel和两个sink,131过来的信息走c1并在131机器上打印,其他节点过来的信息以avro格式序列化后再发送给139。但是因为我本机环境问题无法从139上访问131所以这个例子只是部分实现,如果想使用需要修改的请注意。



a1.sources=r1

a1.channels=c1 c2

a1.sinks=k1 k2

 

a1.sources.r1.type=exec 

a1.sources.r1.command=tail -F/usr/local/success.log

 

a1.sources.r1.interceptors=i1 i2

a1.sources.r1.interceptors.i1.type=host

a1.sources.r1.interceptors.i1.preserveExisting=false

a1.sources.r1.interceptors.i1.hostHeader=hostname

 

a1.sources.r1.interceptors.i2.type=timestamp

 

a1.channels.c1.type=memory 

a1.channels.c1.capacity=1000

a1.channels.c1.transactioncapacity=100

 

a1.channels.c2.type=memory

a1.channels.c2.capacity=1000

a1.channels.c2.transactioncapacity=100

 

a1.sources.r1.selector.type=multiplexing

a1.sources.r1.selector.header=hostname

a1.sources.r1.selector.mapping.192.168.79.131=c1

a1.sources.r1.selector.default=c2

 

a1.sinks.k1.type=logger

 

a1.sinks.k2.type=avro

a1.sinks.k2.hostname=192.168.79.139

a1.sinks.k2.port=42424

 

a1.sources.r1.channels=c1 c2

a1.sinks.k1.channel=c1

a1.sinks.k2.channel=c2


processor

         一个channel可以有多个sink应用场景有两种。

1.负载均衡

web节点上的一个agent可以使用两个sink向两个以上的flume节点发送数据以减小flume节点服务器的压力。

 

a1.sinkgroups=g1

a1.sinkgroups.g1.sinks=k1k2

a1.sinkgroups.g1.processor.type=load_balance

a1.sinkgroups.g1.processor.backoff=true

a1.sinkgroups.g1.processor.selector=round_robin

a1.sinkgroups.g1.processor.selector.maxTimeOut=30000

 

backoff:开启后,故障的节点会列入黑名单,过一定时间再次发送,如果还失败,则等待是指数增长;直到达到最大的时间。

如果不开启,故障的节点每次都会被重试。

selector.maxTimeOut:最大的黑名单时间(单位为毫秒)。

 

 

2.故障转移

我们可以配置两个flume节点来接收web节点发送过来的数据,一个主一个备提高可用性。当主节点宕机后web节点可以转而向备用节点发送数据直到主节点恢复正常。

a1.sinkgroups=g1

a1.sinkgroups.g1.sinks=k1k2

a1.sinkgroups.g1.processor.type=failover

a1.sinkgroups.g1.processor.priority.k1=10

a1.sinkgroups.g1.processor.priority.k2=5

a1.sinkgroups.g1.processor.maxpenalty=10000

#maxpenalty 对于故障的节点最大的黑名单时间 (in millis 毫秒)

 

Flume NG 学习笔记(六)Selector(复用与复制)测试 学习心得(三)流配置中介绍多路复用流的时候,有说到Flume支持从一个源发送事件到多个通道中,这被称为事件流的复用。这里需要在配置中定义事件流的复制/复用,选择1个或者多个通道进行数据流向。 而关于selector配置前面也讲过: .sources..selector.type= replicating 这个源的选择类型为复制。这个参数不指定一个选择的时候,默认情况下它复制 复 阅读详情

相关推荐

从智能手机到汽车电子:聊聊IPC-9702/9704A标准如何帮我们搞定不同场景下的PCB可靠性设计

本文探讨了IPC-9702/9704A标准在智能手机和汽车电子等不同场景下的PCB可靠性设计应用。通过分析消费电子、汽车电子和工业设备中的应力特征,详细解读了IPC标准在应变识别和测试方法论中的核心价值,并提供了具体的轻量化设计策略和全生命周期验证方案,帮助工程师提升PCB的长期可靠性。

weixin_30693683的博客 280

Flume入门——Selector、Chanel等

1、selector(http://blog.csdn.net/looklook5/article/details/40430965)(http://blog.csdn.net/xiao_jun_0820/article/details/38116103#)选择器可以工作在复制 多路复用(路由) 模式下        复制模式        属性说明:            selector.ty...

天青色等烟雨 而我在等你 948

在MATLAB产生正态(Gauss)分布随机数

在 MATLAB 中内置了有产生标准正态(Gauss)分布的随机数函数,使用方法如下: 其中 为产生矩阵的行数和列数, 为产生矩阵的个数,产生的矩阵中的每个元素均为服从 N(0,1)N(0, 1)N(0,1) 的标准正态分布的元素。使用如下命令产生一个 的服从的随机数矩阵: 绘制图像效果如下: 可以看到这里随机数服从 的标准正态分布。假设 X∼N(0,1)X\sim N(0,1)X∼N(0,1),则 3X+33X+33X+3 服从 N(3,9)N(3,9)N(3,9) 分布,因此我们要产生服从 N(

程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行 3万+

Flume 负载均衡

负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。Load balancing Sink Processor能够实现load balance功能,如下图Agent1是一个路由节点,负责将Channel暂存的Event均衡到对应的多个Sink组件上,而每个Sink组件分别连接到一个独立的Agent上,示例配置,如下所示: a1.sinkgroups = g1 a1.sinkgroups.g1.sinks = k1 k2 k3 a1.sinkgroups.g1.proce.

散步的博客 1457

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

基于大模型最大化电力交易收益(策略与代码实践)

新一代电力交易系统正借助大型语言模型(LLM)实现智能化转型。面对可再生能源占比提升带来的市场波动性加剧,传统交易策略已难以应对。LLM通过多模态能力,能够实时处理海量异构数据,包括政策公告、设备检修信息、天气报告等非结构化数据,构建更精准的电力市场预测模型。智能交易系统主要包含三大核心模块:市场情报感知与理解器、融合LLM的短期电价预测模型和自适应交易策略生成器。这些模块协同工作,可在几分钟内完成事件分析、价格预测和策略生成,显著提升交易效率。系统还能实现跨市场套利和动态风险管理,但需注意数据质量、模型验

专注AI大模型,软件混淆,授权 1263

Flume Processors

Processor概述 Processor是Flume用于实现失败恢复和负载均衡的组件。 在企业级开发中,通常有多个客户端Agent来收集数据,发送给中心服务器Agent,中心服务器Agent要承载若干客户端Agent发送的数据,负载较高,且中心服务器Agent如果只有一个,会造成单节点故障风险。 所以在企业级开发中,中心服务器Agent往往不止一个,由若干个协同工作,此时客户端Agent如何分...

sunwenxu的博客 706

复旦微FMSH_Procise安装流程

双击FMSH_Procise_2021.1_full_win64_202103151947.exe 选择好安装目录后点击“Next” 一路next 点install 找技术支持代为申请 License,将电脑MAC地址发过去,将获得的 license 拷贝到 procise 安装目录“data”文件夹,即可使用 procise。点license manager和copy license 将licence,.lic文件放到这个目录 要是报下面错误要...

wangjie36的博客 1万+

Flume学习系列(三)---- Channel Selector与Sink Processors

前言: 继上一篇从source到channel到sink实现了一整套的流程之后,我们这次学习一下Channel Selector与Sink Processors。我个人为了方便理解把这两个组件想象成在Source和Channel之间以及Channel和Sink之间。(注:这两个组件不是必须要设置的。) 一、Channel Selector flume channel sel...

LifeIsGood 374

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

算法大师! 1742

【经验&技巧】如何在ADS中导入示波器的时域波形?

从示波器中导出的时域波形数据,需要按照固定的格式进行修改,并通过Display dataset对话框导入ADS。

一只豌豆象的博客 1573

flume:日志收集工具

多路复用: 一个  source                     ----->多个 (channel----sink)  故障切换:  一个(source ---channel) ---->一个sink组(多个sink ) 常用sink配置: hdfs,hive,hbase 多路复用: ( Multiplexing the flow ) 官方解释为:一个source的数据...

eyeofeagle的博客 1821

claude-hub:GitHub上的AI开发助手,让Claude自动帮你写代码、审代码、合代码

代码不再是人写的,而是人引导 AI 写的。在这个时代,GitHub 不再只是一个代码托管平台,而是 AI 开发代理的工作台。每一个 issue、每一条 PR,都可能是一次与 AI 合作的机会。未来属于那些敢于把开发流程交给 AI 来优化的人——他们不是在取代自己,而是在放大自己的影响力。📌关注本系列文章,我们将持续输出关于 AI 编程、GitHub 自动化、AI Agent 产品化的深度分析。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 1373

flume组件的选择&配置

Flume组件的选择 1)Source (1)Taildir Source相比Exec Source、Spooling Directory Source的优势 TailDir Source:断点续传、多目录。Flume1.6以前需要自己自定义Source记录每次读取文件位置,实现断点续传(优选选择)。 Exec Source可以实时搜集数据,但是在Flume不运行或者Shell命令出错的情况下,数据将会丢失。 Spooling Directory Source监控目录,不支持断点续传。 (2)b

zcb_data的博客 813

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Flume组件 --Selector、Interceptor、Processor

Selector 复制模式 Selector 默认是复制模式(replicating),即把source复制,然后分发给多个sink; 配置项 说明 selector.type replicating 表示复制模式,source的selector如果不配置,默认就是这种模式 在复制模式下,当source接收到数据后,会复制多分,分发给每一个avro sink selector.optional ...

Fishman113的博客 555

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

flume三大高级组件

第一部分:Flume Interceptors 介绍:resource中的拦截器,与Spring中拦截器类似 功能:通过拦截器对每条数据进行过滤 1.Timestamp Interceptor:时间拦截器 在每一个event的头部添加一个KeyValue key: timestamp value:当前封装event的时间 2.Host Interceptor:主机名拦截器 在每一个event的头部...

yhquser的博客 590

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【总结】Flume的负载均衡和故障转移

总结一下在学 Flume的故障转移和负载均衡的知识和经验总结

克里斯的博客 1406

Flume内部原理——Interceptor & Selector和IDEA编写自定义拦截器案例

目录 一、Flume内部原理 二、Interceptor和Selector配置文件案例 三、自定义拦截器案例(IDEA) 一、Flume内部原理 Flume内部从Source -> Channel -> Sink,中间会先后经历拦截器和选择器; (1)Event:一个数据单元,也是Flume数据传输的基本单元,事务类型;          包括一个可选的消息头head...

攻城狮Kevin 866

Flume:3.输出模式处理器【sink-processor】

Flume配置的三个“器”: 1.消息源拦截器【source-Interceptor】 2.通道选择器【source-selector】 3.输出模式处理器【sink-processor】(本文) #agent1 name agent1.channels = c1 agent1.sources = r1 agent1.sinks = k1 k2 ## ------------------...

zeng255938的博客 495

flume的Interceptor和Selector

xianrenqiu1234的博客 426

Flume四:多路复用(ChannelSelector之Multiplexing)+自定义拦截器

案例: 自定义拦截器 pom.xml <dependency> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-core</artifactId> </dependency> 拦截器类 package com.flu...

qq_22049773的博客 1300

Flume的进阶介绍和使用(Interceptor,Selectors,Processors)

Flume的引入 关于Flume的介绍和使用,官网已经给了比较详细的介绍。本文在这里做一个总结。 Flume是Apache下的一个开源的顶级项目,它是一个分布式,可扩展,高可用,高可靠的,轻量级数据收集框架,主要用来做数据的收集,聚合,和传输,相对与传统的数据导入导出框架Sqoop,它具备多方面优势,如,简单易用,Flume只需要一个简单的配置文件即可启动;功能全面,Flume在Source,...

Realoyou的博客 2827

Flume--failover sink processor

failover sink processor根据优先级从sink组中选择宿。具有最高优先级的接收器将写入数据直到其失败(接收器的故障甚至可能是因为下游代理在RPC陷阱的情况下死亡),然后选择组中其他接收器中具有最高优先级的接收器。选择不同的接收器才能在当前接收器写入数据失败时写入数据。这确保了当没有故障时,第二层上的所有代理都有一个从每个机器写入的接收器,并且只有在某些机器看到更多的传入数据时才

tianqinglei的博客 1214

Flume配置Multiplexing Channel Selector

1 官网内容 上面配置的是根据不同的heder当中state值走不同的channels,如果是CZ就走c1 如果是US就走c2 c3 其他默认走c4 2 我的详细配置信息   一个监听http端口 然后 配置两个channel,根据不同的Header中的state值走不同的channel 监听source的配置 #配置文件: a1.sources= r1 ...

1649

Flume Sink Processor

SinkGroup允许组织多个sink到一个实体上。SinkProcessors 能够提供在组内所有sink之间实现负载均衡的能力。而且在失败的情况下能够进行故障转移。 sinks: 空格分隔的多个sink processor.type:default|failover|load_balance 一 DefaultSink Processor 只允许接收单个sink,不强制用户为sink创

happy19870612's blog 1050
上一篇: Flume笔记二之source,channel,sink
下一篇: Flume笔记一之简介部署
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值