Flume组件 - Sink

Flume详解(一) 一、Flume介绍 Flume Apache Flume是一个分布式,高可用可靠的服务,能够高效的收集并聚合大量日志数据,它基于流式数据流的结构,能够将数据写入多种数据接收方。 二、几个重要概念 1.Event 事件是Flume数据传输的基本数据单位,它携带着数据信息。 2.Agent Flume包含一个或者多个Agent,可以把Agent当做一个独立的进程,它的主要作用就是从客户端接收数据,并将数据传给下一个目标节点。 3.Source Source是Agent中的一员,它主要用来从数据发生方接收数据,并 阅读详情

Sink—Event发送

主要职责是将Event传输到下一个Agent或最终目的地,成功传输完成将Event从Channel中移除

Logger Sink
  • 记录指定级别(比如INFO,DEBUG,ERROR等)的日志,通常用于调试
  • 要求,在 --conf(-c )参数指定的目录下有log4j的配置文件
  • 根据设计,logger sink将body内容限制为16字节,从而避免屏幕充斥着过多的内容。如果想要查看调试的完整内容,那么你应该使用其他的sink,也许可以
    使用file_roll sink,它会将日志写到本地文件系统中;
  • 配置项 说明
    channel 绑定通道
    type logger
File_roll Sink
  • 在本地系统中存储事件
    • 需要在本地文件系统创建一个缓冲目录;
  • 每隔指定时长生成文件保存这段时间内收集到的日志信息
  • 配置项 说明
    channel 绑定通道
    type file_roll
    sink.directory 文件被存储的目录
    sink.rollInterval 30() 记录日志到文件里,每隔30秒生成一个新日志文件。如果设置为0,则禁止滚动,从而导致所有数据被写入到一个文件中。
#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888
#描述sink
a1.sinks.s1.type=file_roll
a1.sinks.s1.sink.directory=/home/work/flumedata
a1.sinks.s1.sink.rollInterval=60
#描述内存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

  • 创建指定的文件目录 /home/flume
    在这里插入图片描述
HDFS Sink
  1. 此Sink将事件写入到Hadoop分布式文件系统HDFS中
  2. 目前它支持创建文本文件和序列化文件,并且对这两种格式都支持压缩
  3. 根据经过的时间、数据的大小、事件的数量定期滚动文件(关闭当前的文件并创建新的文件)
  4. 对于正在进行写操作处理的文件其文件名会添加一个后缀“.tmp”
  5. 这些文件可以分卷,按照指定的时间或数据量或事件的数量为基础
  6. 它还通过类似时间戳或机器属性对数据进行 buckets/partitions 操作
  7. HDFS的目录路径可以包含将要由HDFS替换格式的转移序列用以生成存储事件的目录/文件名
  8. 使用这个Sink要求haddop必须已经安装好,以便Flume可以通过hadoop提供的jar包与HDFS进行通
  9. 配置项 说明
    channel 绑定的通道
    type hdfs
    hdfs.path HDFS 目录路径 (hdfs://namenode/flume/webdata/)
    hdfs.inUseSuffix .tmp Flume正在处理的文件所加的后缀
    hdfs.rollInterval 文件生成的间隔事件,默认是30,单位是秒
    hdfs.rollSize 生成的文件大小,默认是1024个字节 ,0表示不开启此项
    hdfs.rollCount 每写几条数据就生成一个新文件,默认数量为10
    每写几条数据就生成一个新文件,
    hdfs.fileType ----- SequenceFile/DataStream/CompressedStream
    hdfs.retryInterval ----- 80 Time in seconds between consecutive attempts to close a file. Each close call costs multiple RPC round-trips to the
    Namenode, so setting this too low can cause a lot of load on the name node. If set to 0 or less, the sink will not attempt
    to close the file if the first attempt fails, and may leave the file open or with a ”.tmp” extension.
#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888
#描述sink
a1.sinks.s1.type=hdfs
a1.sinks.s1.hdfs.path=hdfs://192.168.234.21:9000/flume
a1.sinks.s1.hdfs.fileType=DataStream
#描述内存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

Avro Sink
  1. 将源数据进行利用avro进行序列化之后写到指定的节点上
  2. 是实现多级流动、扇出流(1到多) 扇入流(多到1) 的基础
  3. 配置项 说明
    channel 绑定的通道
    type avro
    hostname 要发送的主机
    port 要发往的端口号
多级流动

概述

  1. 让01机的flume通过netcat source源接收数据,然后通过avro sink 发给02机
  2. 02机的flume利用avro source源收数据,然后通过avro sink 传给03机
  3. 03机通过avro source源收数据,通过logger sink 输出到控制台上
    需要配置三台云主机的Flume配置

a. 01机的配置示例:


#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888
#描述sink
a1.sinks.s1.type=avro
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=flume02
a1.sinks.s1.port=9999
#描述内存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

b. 02机的配置示例:


#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=9999
#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#描述sink
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=192.168.234.213
a1.sinks.s1.port=9999

#为channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1

c. 03机的配置示例:

#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1

a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=9999
#描述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
扇出流
  1. 01机的配置文件

#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1 s2
a1.channels=c1 c2

#描述/配置a1的source1
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888

#描述内存channel
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

#描述sink
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=192.168.234.212
a1.sinks.s1.port=9999

a1.sinks.s2.type=avro
a1.sinks.s2.hostname=192.168.234.213
a1.sinks.s2.port=9999

#为channel 绑定 source和sink
a1.sources.r1.channels=c1 c2
a1.sinks.s1.channel=c1
a1.sinks.s2.channel=c2
  1. 02,03配置示例:

#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1

#描述/配置a1的source1
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=9999

#描述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
扇入流
  1. 02,03的配置示例:

#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888

#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

#描述sink
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=192.168.234.163
a1.sinks.s1.port=9999

#为channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
  1. 01机的配置示例:

#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=9999

#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

#描述sink
a1.sinks.s1.type=logger
#为channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
【大数据学习 | flume】flume之常见的sink组件 Flume Sink。Flume也提供了各种sink的实现,包括HDFS sink、Logger sink、Avro sink、File Roll sink、HBase sink,。​ Flume Sink在设置存储数据时,可以向文件系统中,数据库中,hadoop中储数据,在日志数据较少时,可以将数据存储在文件系中,并且设定一定的时间间隔保存数据,在日志数据较多时,可以将相应的日志数据存储到Hadoop中,便于日后进行相应的数据分析。 阅读详情

相关推荐

别再硬啃理论了!手把手教你用Simulink搭VSG并网模型,模拟线路故障(含三相故障模块详解)

本文提供了一份详细的Simulink VSG并网模型搭建指南,特别聚焦于三相故障模块的配置与仿真。通过逐步指导,帮助电力电子工程师掌握从基础电路搭建到复杂故障模拟的全流程,包括单相接地、两相短路等典型故障的波形分析与参数设置技巧,有效弥合理论与实践的鸿沟。

weixin_29057237的博客 318

大数据笔记--Flume(第二篇)

一、Sink 1、HDFS Sink ①、概述 HDFS Sink将收集到的数据写到HDFS中 在往HDFS上写的时候,支持三种文件类型:文本类型,序列类型以及压缩类型。如果不指定,那么默认使用使得序列类型 在往HDFS上写数据的时候,数据的存储文件会定时的滚动,如果不指定,那么每隔30s会滚动一次,生成一个文件,那么此时会生成大量的小文件 ②、配置属性 属性 解释 type ...

我睡觉的时候不困 2546

ESP32 STA AP模式下,设备连接 ESP的AP 后无法上网,无法访问域名上网(或者Failed to enable NAPT)

ESP32 STA AP模式下,设备连接 ESP的AP 后无法上网,无法访问域名上网(或者Failed to enable NAPT)1.可能是ESP STA模式未成功连接到路由器,确保 STA 成功连接到外部网络。2.检查 STA 和 AP 的网络配置是否正确,避免子网冲突。3.ESP32的NAPT功能未正确启用,确保 menuconfig 中已启用 IP_NAPT。4.DNS服务器未正确配置。

qq_34885669的博客 1540

Flume: ------ File Roll Sink、HDFS Sink、Kafka Sink

File Roll Sink 可以将采集的数据写入到本地文件 编写example6.properties文本 # 声明基本组件 Source Channel Sink example6.properties a1.sources = s1 a1.sinks = sk1 a1.channels = c1 # 配置Source组件,从Socket中接收⽂本数据 a1.sources.s1.type = netcat a1.sources.s1.bind = Centos a1.sources.s1.port

weixin_45764675的博客 1769

数字IC后端实战:如何用ICC搞定复杂模块的floorplan与powerplan(附避坑指南)

本文深入解析数字IC后端设计中复杂模块的floorplan与powerplan实战技巧,重点介绍多边形模块边界处理、MTCMOS电源网络优化及存储器摆放陷阱规避。通过Synopsys ICC工具的具体操作示例和项目实战经验,帮助工程师高效解决设计难题,提升芯片性能与可靠性。

weixin_29213525的博客 353

Eigen 直线拟合/曲线拟合/圆拟合/椭圆拟合

使用Eigen库进行直线拟合是数据分析和科学计算中的常见任务,主要通过最小二乘法实现。该代码演示了二维空间中的直线拟合,输出斜率和截距。

深之JohnChen的专栏 1602

Flume(十五)File Roll Sink

File Roll Sink是将收集到的数据写到磁盘的指定位置上。同HDFS Sink一样,File Roll Sink在往磁盘上写的时候,也有一个滚动时间,默认同样是30s间隔,因此在磁盘上同样会形成大量的小文件。查看结果:生成一个文件。

技术博客 323

ArcMap对遥感图像进行语义分割标注

使用arcmap对遥感图像进行语义分割标注

qq_41708916的博客 4050

flume自定义file sink,实现按时间创建文件夹,分隔文件以及自定义文件名

1.flume版本:1.8 2.配置文件: agent.sinks.csvSink.type = com.xxx.xxx.RollingFileSink agent.sinks.csvSink.sink.directory = /data #此处配置不使用flume默认的滚动 agent.sinks.csvSink.sink.rollInterval = 0 agent.sinks.csvS...

u013432112的专栏 5240

契约锁代码审计分析

但是正常来讲,定义了这么多的路由,肯定会有一个通用的判断逻辑,来判断请求的url是否和这些路由匹配。POC中有一点值得注意,Spring新一些的版本中支持以表单的形式来为参数赋值,且无需用注解。但是需要注意4.2.8的代码逻辑和新版本中的不同,此漏洞可能存在于版本大于4.2.8的版本中。方法用于解析LICENSE,先进行AES解密,再从字符串转换成json格式的License。loadPath实际判断传入的path是否和下面的path相等,如果不相等返回null。,如果包含这三个中的一个就会抛出异常。

好记性不如烂笔头 5739

浅聊开关电源6:大学生电赛(电源类)之LCL并网滤波器设计(PCB设计,STM32F4xx程序与Simulink仿真)

关于LCL并网滤波器设计的一些小分享

xjtuymh的博客 3656

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

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

y215204的博客 1206

组建高效AI开发团队:角色、技能与协作

在当今科技飞速发展的时代,人工智能(AI)已经成为各个领域的核心驱动力。组建高效的AI开发团队对于企业和科研机构来说至关重要,它能够推动创新、提高竞争力、实现业务目标。本文的目的在于为那些希望组建或优化AI开发团队的管理者、技术负责人以及相关从业者提供全面的指导。范围涵盖了团队角色的定义、所需技能的分析、团队协作的策略,以及实际项目中的应用和相关资源的推荐。本文将首先介绍AI开发团队的核心概念与联系,包括团队角色、技能和协作之间的关系。接着阐述核心算法原理和具体操作步骤,结合数学模型和公式进行详细讲解。

2502_91592937的博客 995

Flume 核心组件深度解析:Source、Channel、Sink 的职责与协同

在上一篇文章中,我们了解了 Flume 的整体架构。今天,让我们聚焦于构成 Flume Agent 的三大核心组件——SourceChannel和Sink。它们是 Flume 这座"数据水槽"的基石,理解每个组件的职责以及它们如何协同工作,是掌握 Flume 的关键。Source就是收货区,负责接收来自四面八方的货物Channel是仓库,临时存储等待配送的货物Sink则是发货区,将货物准确送达目的地这三个组件各司其职,又紧密协作,共同构建了一条稳健的数据流水线。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2473

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Flume-ng源码解析之Sink组件

如果你还没看过Flume-ng源码解析系列中的启动流程和Channel组件,可以点击下面链接: Flume-ng源码解析之启动流程 Flume-ng源码解析之Channel组件 作为启动流程中第二个启动的组件,我们今天来看看Sink的细节 1 Sink Sink在agent中扮演的角色是消费者,将event输送到特定的位置 首先依然是看代码,由代码我们可以看出Sink是一个接口,里面最主要的方...

weixin_30279315的博客 236

Camera2Demo

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

【Hadoop】Flume-ng源码解析之Sink组件

通过解读flume源码来稍微深入理解Sink组件的细节,更多得了解它的来龙去脉

_朝和 1023

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

4.Flume三大组件Source、channel、Sink常用

参考:http://flume.apache.org/FlumeUserGuide.html#flume-sources1.Flume SourceSource类型 说明Avro Source 支持Avro协议(实际上是Avro RPC),内置支持 Thrift Source 支持Thrift协议,内置支持 Exec Source 基于Unix的command在标准输出上生产数据 J

百年一梦 3761

Flume组件汇总 source、sink、channel

一、Flume Source Source类型 说明 Avro Source 支持Avro协议(实际上是Avro RPC),内置支持 Thrift Source 支持Thrift协议,内置支持 Exec Source 基于Unix的command在标准输出上生产数据 JMS Source 从JM

奔跑的蜗牛 505

Flume开发中常用组件source,channel,sink等配置

实际开发中Flume中常用的source源,sink,channel,intercepertor等介绍,而实际上关于agent代理中设置选项有很多,具体要到官网去查看。   组件 使用介绍           source 数据源 Avro ...

wyqwilliam的博客 548

Flume常用组件(Source,Channel,Sink)及其基本作用

Source组件类型 Netcat Source 接受来自于数据客户端的请求数据,常用于测试开发 Exec Source 运行一个给定的unix指令,将指令的执行结果作为数据来源 Spooling Directory Source 监视指定目录的新文件,并从出现的新文件中解析事件 Kafka Source 获取来自于Kafka集群中数据 Sequence Generator Source 序列产生...

gym02的博客 2157

Flume Sink组件常见类型

Hdfs sink 此接收器将事件写入 Hadoop 分布式文件系统 (HDFS) 参数说明 type hadfs hdfs.path 必填,目录(eghdfs://namenode/flume/webdata/) hdfs.filePrefix Flume在目录下创建文件的名称前缀 hdfs.fileSuffix – 追加到文件的名称后缀 (eg .avro - 注: 日期时间不会自动添加) hdfs.inUsePrefix Flume正在处理的

weixin_52549328的博客 1098

Flume内置channel,source,sink三组件介绍

导读: 1.什么是channel? 2.什么是source? 3.什么是sink? 4.直接读取文件Source,有哪两种方式? 5.Channel有几种方式? 6.Sink在设置存储数据时,数据较多,较少的情况下,该如何处理? 看了一下Flume中央日志系统(版本号:1.3.X),Flume还是一个非常不错的日志收集系统的,其设计理念非常易用,简洁。并且是一个开

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值