Flume1.8.0原理解析及安装部署

Flume是Cloudera提供的高可用、高可靠的数据采集、聚合和传输系统,常用于日志收集。本文深入解析Flume的工作机制,包括Source、Channel、Sink三大组件,以及如何进行安装部署和使用NetCat进行测试。Flume相比其他日志收集系统如Scribe和Logstash,在性能和资源消耗上有优势。
摘要由CSDN通过智能技术生成

Flume是数据收集/聚合/传输的组件,也是我们生产环境中常用的日志收集传输系统,常用的一种日志实时处理架构就是Flume+Kafka+Storm/Flink+HDFS,这些实时系统的集成日后我们会提及到。

一  背景

简介:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,2009年贡献给Apache并成为顶级项目。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume有两个版本Flume 0.9X版本的统称Flume-og(original generation),Flume1.X版本的统称Flume-ng(next generation),由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。本文中所介绍的Flume原理以及安装、简单使用均是基于Flume-ng版本。

对比:目前有很多的日志收集系统,例如Facebook—Scribe日志收集系统、Apache—Chukwa日志收集系统、Apache—Flume日志收集系统、elastic—logstash日志收集系统。scribe 主要包括客户端、数据收集和存储这三个部分,在数据收集(collector)和存储(store)之间有良好的容错机制。 但是不足的是,并没有提供客户端(agent)和数据收集(collector)之间的数据容错机制,需要使用者自己实现,此外系统在负载均衡方面的性能也有待于提高;Logstash耗资源较大,运行占用CPU和内存高。Flume在性能、安装各方面表现相对来说更有优势。

应用:日志分析可以应用在很多方面。例如实时推荐,通过实时分析log4j日志记录的交互信息,推送至个性推荐算法,快速构建用户兴趣矩阵。 例如网易云音乐的智能播放模式;系统告警:在实时分析日志流记录后,统计出在一分钟之内,某IP地址登录次数超过十次,标记为异常IP,在可视化系统中弹出提示。

二  Flume运行机制

Flume-ng是分布式日志收集系统,它将各个服务器中的日志数据收集起来并送到指定的地方去,比如说送到图中的HDFS,简单来说flume就是收集日志的,经过传输之后将这些海量数据下沉落地值数据存储。从下图中可以看出,Flume 运行核心是Agent,agent为最小的独立运行单位,含有三个组件Source、Channel、Sink。每台机器运行一个agent,但是可以在一个agent中包含对个sources和sinks。

Flume 传输的数据的基本单位是 Event,如果是文本文件,通常是一行记录,这也是事务的基本单位。Event 从 Source,流向 Channel,再到 Sink,本身为一个 byte 数组,并可携带 headers 信息。Event 代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去。event结构如下图所示:

那么总结一下Flume的运行机制就是,source在接收到日志数据后,将数据发送给channel, channel作为一个数据缓冲区会临时存放这些数据,随后sink会将channel中的数据发送到指定的地方,等到Sink将数据成功发送之后,Ch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值