超简单的Flume的介绍

1、定义

Flume是Cloudera(一个开源的大数据平台)提供的一个高可用、高可靠的分布式日志采集传输系统,结构非常简单,操作也非常的灵活。

2、flume的组成结构

在这里插入图片描述

大家大体看这个图就可以知道flume的根本目的就是将日志文件和数据信息经过一系列的处理,存储到hdfs存储系统上,然后帮助我们进行筛选或是整合等等操作来满足用户的需要,当然这里也不局限于hdfs存储系统,只是这个大家比较熟悉所以当例子比较好理解,它还可以存储在hbase、kafka等等集中存储器中,下面分别介绍一下他们的作用以及如何工作。

3、Flume的各部分功能及工作原理
Agent

agent是一个JVM进程,是flume的最基本的单元,由source、channel,skin三部分组成,它的功能就是以事件的形式将数据从源头传送至目的地。(webserver ~~~~~> HDFS)

Source

source是flume提供的接受日志信息到agent的组件,他最厉害的地方在于他可以接受各种类型,各种格式的日志文件,然后送到channel缓存中等待被处理。

Channel

channel是flume的缓存机制,他是一个安全的线程,可以同时接受多个source传递的数据,也可以同时响应多个skin提出的请求。
  
flume的channel一共有两种,分别是FileChannel和MemoryChannel,其中FileChannel是一种将数据存到磁盘的缓存,所以数据不会因为计算机的宕机或者关机而丢失,但是MemoryChannel是一种运行于内存的队列,他会因为进程结束、关机、宕机等等意外情况而导致数据的丢失。

Skin

skin会通过一种轮询的方式不停地去接受调用channel中的数据导出到hdfs等存储系统或者下一个agent里面,再从channel中批量删除这些数据。
  
下面我们仔细讲讲skin的操作过程,首先skin是一个完全事务性的组件,他会在访问channel时通过channel产生一个事务,然后将数据写出到存储系统或agent时,让channel提交这个事务,channel就会从内部删除这些数据。

Event

是flume中最基础的一种传输单元,也是保障我们flume是以事件的形式传输到存储系统的基础。就像hadoop上传文件是一个block一个block的一样,都是一种独有的单元。

Putlist&Takelist

这就是我们上面一直讲到的事务,一个put写入事务,一个take提取事务,是具体帮助我们写入写出的一个帮助。

put事务

在这里插入图片描述

take事务

在这里插入图片描述

4、完整agent的工作原理

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值