Flume学习笔记----Sources组件

Flume NG 学习笔记(四)Source配置 首先、这节水的东西就比较少了,大部分是例子。 一、Avro Source Avro端口监听并接收来自外部的Avro客户流的事件。当内置Avro 去Sinks另一个配对Flume代理,它就可以创建分层采集的拓扑结构。官网说的比较绕,当然我的翻译也很弱,其实就是flume 可以多级代理,然后代理与代理之间用Avro去连接 下面是官网给出的source的配置,加粗的参数是必选,描述就不解释了。 阅读详情

Flume的组件之一 Source

Source:

简介

Source,是agent的接受消息来源组件,负责将Event传递给channel;
源码

@InterfaceAudience.Public
@InterfaceStability.Stable
public interface Source extends LifecycleAware, NamedComponent {
  public void setChannelProcessor(ChannelProcessor channelProcessor);
  public ChannelProcessor getChannelProcessor();
}

从源码中可以看到,两个抽象方法 set/getChannelProcessor ,我们大概可以了解到,source是通过ChannelProcessor, 来实现传递Event的;

1. AVRO
过程:
  • 将数据用AVRO序列化之后在进行收集,结合AVRO Sink可以实现多级流、扇入流和扇出流。
  • 监听Avro端口来接受外部avro客户端的事件流。
  • avro-source接受到的是经过avro序列化后的数据,然后反序列化继续传输。
配置:
  • type: Avro source的别名是avro,也可以使用完整类别名称,org.apache.flume.source.AvroSource;
  • bind: 绑定的IP地址或主机名。使用0.0.0.0绑定机器所有端口
  • port: 绑定监听端口端口
#给Agent,以及其中的sources、channels和sinks命名
a1.sources = r1
a1.sinks = k1
a1.channels = c1
 
#定制source,绑定channel、主机以及端口
a1.sources.r1.type = avro
a1.sources.r1.channels = c1
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 8090
 
#设置sinks的类型
a1.sinks.k1.type = logger
 
#use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 100
 
#Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

agent-avro客户端指令:
[root@master bin]# flume-ng agent -n a1 -c /usr/flume/conf/ --conf-file /usr/flume/conf/avro.conf -Dflume.root.logger=INFO,console

2. Spooling Directory

-可以持续监控指定的目录。当前目录在添加文件的时候会自动收集该文件中 的内容,然后解析该文件的内容写入到channel中,当sink处理完成之后,说明一个文件被收集完成,自动在晚间末尾添加 .COMPLETED后缀;

  • 但是如果以追加的方式处理文件,source并不能识别;
    一旦文件被放到spool收集的文件中,便不能修改,否则flume会报错;
    有重名的文件也会报错
#配置Agent a1 的组件
a1.sources=r1
a1.channels=c1
a1.sinks=s1
#描述/配置a1的source1
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/home/work/data
#描述sink
a1.sinks.s1.type=logger
#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#为channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
3. Http
  • 启动后会拉起一个Web服务来监听指定的端口、IP,接收HTTP请求,只能接收GET或者POST请求,但是注意GET请求不稳定,使用POST请求居多;
  • flume解析http请求(请求头、响应体等信息),需要提供一个可插拔的处理器来将请求转化为事件对象event,这个类必须实现HttpSourcehandler接口;
  • 这个处理器能够接受一个httpServletRequest对象,并返回一个Flume Event对象;
  • 如果不指定默认是 JsonHandler,默认编码为 UTF-8
  • 格式 在这里插入图片描述 - BlobHandler 适合大文件传输的处理器
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=http
a1.sources.r1.port=8888
#描述sink
a1.sinks.s1.type=logger
#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#为channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1

模拟一次http的Post请求:curl -X POST -d ‘[{“headers”:{“a”:“a1”,“b”:“b1”},“body”:“hello http-flume”}]’ http://0.0.0.0:8090

4. 自定义Source
  • Source是顶级接口
  • 实现类EventDrivenSource 事件驱动Source 被动型Source,使用过程线程都需要自己定义;
  • 实现类 PollableSource 拉取Source-主动型Source,自己提供线程数据放入Channel中;
  • 实现 Configurable
5. Exec source
  • 可以将命令的产生作为信息来源来进行传递,指定的执行名令,输出的结果作为日志;
  • 配置项 说明
    channels 绑定的通道
    type exec
    command 要执行的命令
    selector.* 选择器配置
    interceptors.* 拦截器列表配置
6. Netcat Source
  • 一个NetCat Source用来监听一个指定端口,并接收监听到的数据
  • 接收的数据是字符串形式
  • 配置项 说明
    channels 绑定通道
    type netcat
    port 指定要绑定到的端口号
    selector.* 选择器配置
    interceptors.* 拦截器配置
  • 启动后 通过nc 来访问。
Flume NG 学习笔记(二)安装部署以及实战案例 安装部署 Flume 1、Flume 的安装非常简单,只需要解压即可,当然,前提是已有 Hadoop 环境上传安装包到 数据源所在节点上 然后解压 tar -zxvf apache-flume-1.8.0-bin.tar.gz 然后进入 flume 的目录,修改 conf 下的 flume-env.sh,在里面配置 JAVA_HOME 2、根据数据采集的需求配置采集方案,描述在配置文件中(... 阅读详情

相关推荐

Flume NG 学习笔记(六)Selector(复用与复制)测试

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

顾晓艳的专栏 8067

Flume#描述/配置Source a1.sources.r1.type = http a1.sources.r1.port = 44444 a1.sources.r1.interceptor...

flume中的一些重要概念: 1. flume Event:flume 事件,被定义为一个具有有效荷载的字节数据流和可选的字符串属性集。(json格式的字符串,由headers和body两部分组成) 2. flume Agent:flume 代理,是一个进程承载从外部源事件流到下一个目的地的过程。包含source channel和sink。 3. Source:数据源,消耗外部传递给他...

weixin_30751947的博客 2128

大数据学习笔记48:Flume Sources(Flume源)

文章目录一、Flume Sources用户指南二、NetCat TCP Source(一)用户指南网址(二)利用Source组件接收NetCat数据1、在slave1节点上安装NetCat2、在master节点上配置flume3、在master节点上启动flume的agent进程4、在slave1节点上通过nc发布信息5、切换到master节点查看接收信息6、在浏览器里访问http://maste...

howard2005的专栏 960

【Flume】常用Source、Channel、sink组件类型选型

Taildir Source适合用于监听多个实时追加的文件,并且能够实现断点续传 taildir维护了一个json格式的positionFile,其会定期往positionFile中更新每个文件读取到的最新位置,因此能够实现断点续传。如果您有多个 Kafka 源在运行,您可以使用相同的 Consumer Group 配置它们,以便每个都读取一组唯一的主题分区。:event保存在本地文件中,可靠性高,数据可以恢复,但吞吐量低于Memory Channel,即速度没有相对比较慢。:可以将命令产生的输出作为源。

y215204的博客 1206

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4503

ESP32-S3开发环境避坑指南:VS Code+ESP-IDF离线安装全流程(附国内镜像加速)

本文提供了一份详细的ESP32-S3开发环境离线安装指南,重点解决网络依赖问题。通过整合国内镜像加速,手把手教你完成VS Code、ESP-IDF框架、工具链及Python依赖的本地化部署,实现稳定、可重复的开发环境搭建,大幅提升IoT开发效率。

peach的博客 962

5、自定义Source

自定义Source说明 Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。官方提供的source类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需...

ZJ__ZFH的博客 1985

联想ThinkPad声卡驱动安装避坑指南:从E470到X1 Carbon的通用解法

本文详细介绍了ThinkPad声卡驱动安装的全流程,从硬件识别到驱动获取、安装技巧及深度排错。涵盖E470到X1 Carbon等不同机型的通用解法,帮助用户解决音频驱动问题,提升使用体验。重点讲解了声音驱动的精准识别和安装策略,确保系统稳定运行。

weixin_29207439的博客 711

大数据培训之自定义组件Source

Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。官方提供的source类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些source。实现相应方法:getBackOffSleepIncrement()//暂不用。

zjjcchina的博客 329

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 590

RFC-only 与 SAProuter 场景下,让 Claude 真正参与 SAP ABAP 开发

SAP ABAP 开发这几年正在出现一个很有意思的变化。过去我们说开发工具,脑子里大多是 SE80、SE38、SE24、SEGW、Eclipse ADT,再往后是 BAS、VS Code、abapGit、ATC、CI/CD。现在又多了一层,Claude Code、Claude Desktop 这类 AI 编程助手开始通过 MCP 进入开发现场,不只是写一段示例代码,而是能读系统里的 ABAP 对象、搜索包、改源码、跑检查、辅助重构。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1621

接收大文件流_大数据学习笔记7——hadoop生态圈之flume组件Sources

前期回顾:大数据学习笔记1——hdfs架构原理大数据学习笔记2——hdfs安装及相关配置文件的设置大数据学习笔记3——hdfs 文件系统shell命令(1)大数据学习笔记4——hdfs 文件系统shell命令(2)大数据学习笔记5——hdfs 文件系统shell命令(3)大数据学习笔记6——hadoop生态圈之初识flume上篇讲述了flume概念、特点及核心Agent。Agent主要包括Sour...

weixin_35760923的博客 122

数字 IC 笔试面试必考点(1)FPGA 芯片架构

FPGA 芯片架构是非常重要的,如果你不了解 FPGA 芯片内部的详细架构,那么...

新芯设计的博客 2813

Flume-学习笔记分享

文章目录前言1.定义2.基础架构(列举比较常用的组件类型)3.官方案例(监控端口数据发送到logger)4.监控单个本地文件到logger (exec Source)5. 监控单个本地文件到HDFS (Flume需要持有Hadoop的相关jar包)(exec Source)6.监控本地文件夹下新文件到HDFS (Spooling Source)7.实时监控目录下的多个追加文件(taildirSource)8.Flume事务9.Flume Agent 内部原理:10.Flume联接11.案例: Flume之间

LeiKe_的博客 763

高通SDX35:SGMII接口PHY RTL8211FSI-CG驱动适配

高通SDX35 RTL8211F SGMII

不秃头的程序猿Gabriel的博客 787

YOLO26优化:注意力魔改 | EMA:基于跨空间学习的高效多尺度注意力,效果优于ECA、CBAM、CA

加入EMA注意力,一种基于跨空间学习的高效多尺度注意力,效果优于ECA、CBAM、CA等经典注意力。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 335

flume源码学习笔记-1.源码整体结构

flume源码是从github上面拉下来的,我拉的是master分支的代码,pom.xml文件里面显示是1.10版本。 一、源码主要模块说明 flume-ng-channels 里面包含了filechannel,jdbcchannel,kafkachannel,memorychannel通道的实现。 flume-ng-source 里面包含了jms, kafka, scr...

hjw_chuxuezhe的博客 410

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Flume学习笔记

flume学习笔记   一、什么是Flume?     Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。 二、flume特性     F...

浪淘沙 575

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

flume学习笔记

Flume笔记 分布式日志收集工具,对海量日志的采集 日志的处理流程 日志的收集---》数据的清洗---》数据的存储---》数据的分析---》数据的展示 0.9版本以下 flume-og 1.x版本 flume-ng clien--webserver 1. client --》source --》channel--》sink--》hdfs client --》source --》c...

alinna2015的博客 166

Hadoop学习笔记(HDP)-Part.20 安装Flume

在外网服务器上,下载ambari-flume-service服务下载flume的tar包,下载链接为将apache-flume-1.9.0-bin.tar.gz放到ambari-flume-service目录下执行编译生成rpm包,需要安装rpm-build命令,需要进入到shell脚本目录下执行。

glisten0317的博客 1437

Flume学习笔记:02-Flume Agent内部原理和事务机制

本文详细的总结了Flume的内部对数据的处理流程和Flume的事务机制,通过此文可以非常清晰的了解到数据在Flume中是如何被处理的,同时也可以了解Flume为什么能够保证数据不会丢失。

1036

Flume NG 学习笔记(八)Interceptors(拦截器)测试

一、Event Serializers file_roll sink 和hdfs sink 都支持EventSerializer接口 1.1、Body Text Serializer Body TextSerializer,别名:text。这个拦截器将把事件的body部分写入到输出流中而不需要任何转换或者修改。事件的header将直接被忽略。 下面是官网配置: Prope

顾晓艳的专栏 1万+

Hadoop学习笔记—19.Flume框架学习

START:Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统,日志数据可以经过Flume流向需要存储终端目的地。这里的日志是一个统称,泛指文件、操作记录等许多数据。 一、Flume基础理论 1.1 常见的分布式日志收集系统   Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用。 Chukwa 是一个开源的用于

deguotiantang的专栏 514
上一篇: Flume学习笔记---What is Flume?
下一篇: Flume组件 -Channel
王 大 柱
博客等级 码龄9年 10粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值