flume(一)

一、简介

1.分布式日志采集系统
这里的日志指的是人机交互所产生的数据。
可以得到flume是采集人机交互数据的工具。
采集数据就会有三个核心部分:数据来源,数据数据通道,数据流向目的地。
2. Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据。
3. Flume是一个分布式、可靠、高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据﹔同时,Flume提供对数据的简单处理,并写到各种数据接收方的能力。
(1)分布式:flume可以做成集群,是可以启动多个节点运行,多个节点之间没有任何关系,都默默的在做同一件事情。
(2)聚合系统:来自于不同机器上的日志合并到一起。比如王者荣耀n个区。产生的日志信息需要处理。把多个区的日志信息搬运到一起,但是需要知道数据的位置。
4.支持定制,日志可以是很多种形式的,控制台,文件,流,网络。
4. Flume在0.9.x and 1.x之间有较大的架构调整,1.x版本之后的改称Flume NG,0.9.x的称为FlumeOG。
5. flume可以理解为是一个ETL(数据仓库技术)工具,本身是单点的,也就是只有agent。
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)转换(transform)、**加载(load)**至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
7.在flume中,每个进程都叫做Agent(特工),在flume进程左边是一个web服务器,右边是一个hdfs集
群,可以看出,flume的主要功能是把web服务器的数据搬运到hdfs上。
在这里插入图片描述

二、组件

flume的一个程序是一个Agent,在Agent内部有三个核心组件: Source,Channel,Sink

  1. Source :数据来源
    数据收集组件,表示一个数据的来源位置,可以从这个位置读取获取到数据。
    source读取到的数据会封装成一个一个的Event。这个Event会交给channel。
  2. channel:数据通道
    中转Event的一个临时存储,保存由Source组件传递过来的Event
  3. sink :数据目的地
    把Channel中的数据输出到目的地。
    从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)
  4. Event :数据单元
    每次读取到的数据就是封装为一个Event事件对象,一个数据单元,消息头和消息体组成如果是文本文件,通常是一行记录,这也是事务的基本单位Event 从 Source,流向Channel,再到Sink,本身为一个byte数组,并可携带headers信息。Event代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去。
  5. flow :流向
    Event从源点到达目的点的迁移的抽象,从Event到source的过程。
    在这里插入图片描述
  6. Agent :
    一个独立的Flume进程,包含组件Source、Channel、Sink 。一个Agent是这三个部分组成,但是每个小模块到底是什么类型的,都是可以自定义的。可以有多个Agent,一个Agent的输出给另一个Agent的输入,可以自己定制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值