flume简介

参考 Flume架构以及应用介绍

一.简介

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

image.png

二.主要功能

1.日志收集 Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据。

2.数据处理 Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力。

工作原理

flume的核心是把数据从数据源(source)收集过来,在将收集到的数据送到指定的目的地(sink)。

为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume在删除自己缓存的数据。

在整个数据的传输的过程中,流动的是event,即事务保证是在event级别进行的。

那么什么是event呢?

event将传输的数据进行封装,是flume传输数据的基本单位。如果是文本文件,通常是一行记录,event也是事务的基本单位。event从source,流向channel,再到sink,本身为一个字节数组,并可携带headers(头信息)信息。event代表着一个数据的最小完整单元,从外部数据源来,向外部的目的地去。

image.png

三.Flume架构

Flume使用agent来收集日志,agent包括三个组成部分:

  • source:收集数据
  • channel:存储数据
  • sink :输出数据 Flume使用source接收日志,然后缓存到channel中,最后通过sink将数据输出到目的地。只有在sink将channel中的数据成功发送出去之后,channel才会将临时数据进行删除,这种机制保证了数据传输的可靠性与安全性。

Flume支持agent串联操作,也就是说可以将上一个agent的sink输出到作为下一个agent的source的输入。

source还支持接受多个输入,sink也可以将数据输出到多个目的地中。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神联盟

碎片化 | 第一阶段-03-Java语言环境搭建-视频

如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/v0565h4wpb6.html ---- 什么是jre、什么是JDK。...

37611
来自专栏云计算教程系列

什么是高可用性?

随着对旨在为关键系统提供服务的可靠和高性能基础架构的需求不断增加,术语可扩展性和高可用性不再受欢迎。虽然处理增加的系统负载是一个常见问题,但减少停机时间和消除单...

4260
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】移动H5性能测试平台解决方案

说到H5性能测试,大家想到最多的是在PC端利用Firebug、Fiddle和HttpWatch等工具进行测试和性能指标的分析,但是如果我们测试的是Android...

9490
来自专栏运维

Win7下的修改grub工具bcdedit

bcdedit  /set {id} description "你所想要的名字" 这可以做些个性化的设置

1741
来自专栏blackpiglet

ssh无密码登录失败分析

输入 184 就可以登录到 IP 以184结尾的服务器上了.可是后来有些服务器修改了密码,不再使用默认密码了,随着这种情况越来越多,想记住密码也越来越难.

4654
来自专栏漏斗社区

业务逻辑漏洞探索之越权漏洞

越权,顾名思义,就是超出了权限或权力范围。多数WEB应用都具备权限划分和控制,但是如果权限控制功能设计存在缺陷,那么攻击者就可以通过这些缺陷来访问未经授权的功能...

1433
来自专栏IT技术精选文摘

使用API网关构建微服务

当您选择将应用程序构建为一组微服务时,您需要确定应用程序的客户端将如何与微服务器进行交互。使用单体应用程序,只有一组(通常是复制的,负载均衡的)端点。然而,在微...

3898
来自专栏butterfly100

Chris Richardson微服务翻译:构建微服务之使用API网关

Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关(本文) 构建微服务之微服务架构的进程通讯 微服务架构中的服...

2936
来自专栏JackeyGao的博客

Python 高级并发

就是直接用『原子操作』(atomic operation)所实现的并发。这种并发是给程序库的编写者用的, 而应用程序开发者则不需要它,因为这种写法很容易出错,而...

1111
来自专栏运维技术迷

连仕彤博客zabbix-agent启动报错No space left on device

8753

扫码关注云+社区

领取腾讯云代金券