首页 > 其他分享 >当前大数据时代的一个流式日志采集工具——Flume

当前大数据时代的一个流式日志采集工具——Flume

时间:2023-11-09 21:12:28浏览次数:23  
标签:Flume Agent 流式 日志 data Channel Sink

1.什么是流式日志?

大数据时代的数据大概的说可以分为流式的data以及批式的data

什么意思呢?

  • 顾名思义就是,对data进行处理的方式不一样,流式就是像流水一样,不断流入,它是每时每刻都有的,实时的都需要进行收集然后处理;
  • 反观批式data,它是一批一批的来,等到收集到一批(达到某个阈值)data再统一一起对它们进行处理,即非实时。

2.Flume的概念

  • 开源(可以共同使用)的分布式(多个节点)日志(记录主机上的各种信息)系统

3.Flume的基础架构

Agent中分三个部分:Source(从日志中拿出data并进行data的一系列处理,下面会谈到)+Channel(通道,缓存,暂时存储data)+Sink(把channel的data传给目的地(下面会谈到)

单Agent架构如下:(多Agent也是一样)

  • 它是从Log(日志)中拿到数据(Source去拿),并且在其中进行处理,比如一些数据清洗,缺失值异常值等等的处理,处理到直到最后生成可以进行训练模型的数据,然后传给Channel

  • Channel中进行缓存,暂时保存着要被Sink拿去的数据(因data数量大需要等待)。

  • Sink就是把Channel的数据拿出来传送,目的地可以是下一个Agent(即给下一个Agent中的(Source继续循环操作)),也可以给HDFS(分布式文件系统,把它理解为一个最终的存储data的地方就可以了,用以下一次data进行操作的存储)保存下来。

上面提到的Sink给下一个Agent就是多Agent的架构,如直接给HDFS就是单Agent。

3的补充

Agent中的Channel又可以分为三类:

  • Memory Channel:突出特点就是它不会持久化data(顾名思义,存在内存),即关机时会不保存data
  • File Channel:持久化data,关机时会写到磁盘
  • JDBC Channel:持久化data,在File基础上,可以基于嵌入式数据库来实现(这里我也不是很懂,我的理解就是数据库这门课里面的在命令行中写代码来实现它)

标签:Flume,Agent,流式,日志,data,Channel,Sink
From: https://www.cnblogs.com/cyz666666/p/17822846.html

相关文章

  • Python:logging日志模块
    Python:logging日志模块1、logging日志的介绍,在现实生活中,记录日志非常重要,比如:银行转账时会有转账记录;飞机飞行过程中,会有个黑盒子(飞行数据记录器)记录着飞机的飞行过程,那在咱们python程序中想要记录程序在运行时所产生的日志信息,怎么做呢?可以使用logging这个包来完成记录......
  • MySQL学习(14)redo日志
    前言InnoDB存储引擎以页为单位从磁盘中加载到内存中,进行数据的管理。我们进行增删改查操作本质上是访问页面,其中包括读页面、写页面、创建新页面等操作。在访问页面之前,需要将页从磁盘中加载到BufferPool中才可以访问。在BufferPool中修改了数据后,会加入到flush链表中,但是flush......
  • Kubernetes日志采集Sidecar模式介绍
    Kubernetes(K8S)作为CNCF(cloudnativecomputingfoundation)的一个核心项目,背靠Google和Redhat的强大社区,近两年发展十分迅速,在成为容器编排领域中领导者的同时,也正在朝着PAAS底座标配的方向发展。日志采集方式日志作为任一系统不可或缺的部分,在K8S的官方文档中也介绍了多种的日......
  • python的日志模块logging
    logging模块是系统自带的无需安装直接导入使用在日志配置中,stream=sys.stdout为控制台输出日志,filename="devops.log"为日志写入到文件,filemode="w"为每次执行代码覆盖写,filemode='a'为追加日志,format="%(asctime)s-%(name)s-%(levelname)s-%(message)s"为在每条日志之前加上......
  • linux文件系统与日志分析
    Linux文件系统inode表结构每一个inode表记录对应的保存了以下信息:inodenumber节点号文件类型权限UIDGID链接数(指向这个文件名路径名称个数)该文件的大小和不同的时间戳指向磁盘上文件的数据块指针有关文件的其他数据 ls -i:查看inode号 sta......
  • ELK日志收集&&日志收集方案
    31.ELK日志收集日志分析系统-k8s部署ElasticSearch集群-帝都攻城狮-博客园(cnblogs.com)https://blog.csdn.net/miss1181248983/article/details/11377394331.1日志收集方式 1.node节点收集,基于daemonset部署日志收集进程,实现json-file类型(标准输出/dev/stdou......
  • loki采集k8s日志
    前言loki是轻量、易用的日志聚合系统。如果你的k8s集群规模并不大,推荐使用grafana+loki的方案来做微服务日志的采集;Loki组成loki架构很简单,主要由3部分组成:loki:服务端,负责存储日志和处理查询;promtail:采集端,负责采集日志发送给loki;grafana:负责采集日志的展示;promtail.ymlkubectl......
  • k8s通过sidecar模式收集pod的容器日志至ELK
    架构:已完成的部署1、ES集群及kibana部署 https://blog.51cto.com/yht1990/60809812、kafaka+zookeeper集群 https://blog.51cto.com/yht1990/6081518准备sidecar镜像(filebeat)找一台服务器打镜像[root@yw-testfilebeat]#catDockerfileFROMdocker.elastic.co/beats/f......
  • salt自定义模块内使用日志例子
    如果你想要在你的SaltMinion中使用自定义的Salt模块并且记录日志,你可以创建一个自定义Salt模块,并在模块中使用Python的标准`logging`库来记录日志。以下是一个示例:首先,在SaltMaster上创建一个自定义模块的目录,例如`/srv/salt/_modules/`。然后在该目录中创建一个Python文件,例......
  • 通过日志恢复SQL Server的历史数据
    通过日志还原方案一:前提条件1.必须有一个完整的备份,且这个备份必须是在修改、删除数据之前做的。2.在更新、删除数据之后,做日志备份,该log备份将用于还原之前的数据建议使用备份数据库进行还原操作,确认无误再对原库进行操作,或同步数据开始还原操作:此处使用SQLmanagement界......