Flume介绍

Flume是一个分布式的,效率高的用来收集日志数据的开源框架。它的架构是基于流式数据,有3个重要的组件,分别是Source,Channel和Sink。

Flume架构和特点

Flume架构图如上,非常简单。

一个Flume的事件(event)表示数据流中的一个单位,它会带有字节数据和可选的字符串属性。一个Flume的agent是一个JVM进程,agent持有3个组件,这3个组件分别是Source,Channel和Sink。

Source组件会消费来自外部的一些事件源数据,这个外部事件源比如是一个web服务器。外部事件源会将事件以某种格式发送给Flume的Source,当Source接收到事件之后,会存储到一个或多个Channel中。

Channel是一个被动型的存储容器,它会一直保留事件直到事件被Sink消费。

Sink会消费Channel里的事件,然后会将事件放到外部仓库里,比如hdfs;或者Sink会转发到下一步Flume agent里做重复的事情。

Source和Sink在agent里异步执行处理channel里的事件。

Flume内部提供了一些常用的Source,Channel和Sink。

举个例子:

Source使用Spooling Directory Source,这个Source会读取文件系统中的文件数据(文件系统中的外部数据相当于之前说的事件源),读取数据之后会放到Channel中,比如使用Memory Channel,将Source接收到的事件存储到内存中,最后使用HDFS这个Sink将Memory Channel中的事件数据写入到hdfs中。

Spooling Directory Source, Memory Channel, HDFS Sink都是Flume内部提供的组件。

Flume非常可靠。每个agent的事件从Source进入到Channel之后,会存储在Channel中。这些事件只有在存储到下一步agent的Channel中或者外部存储仓库(比如hdfs)后,才会在Channel中被移除。

Flume还会使用事务来保证事件处理过程。

Flume还具有很高的可恢复性。事件是存储在channel中的,当使用File Channel的时候,当服务器挂了之后这些文件都还在,但是如果使用的是Memory Channel,就不具备容灾性。

一个简单的Flume配置如下:

# agent名字是a1,有1个source:r1, 1个sink:k1, 1个channel:c1
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 使用netcat source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# 使用 logger sink
a1.sinks.k1.type = logger

# 使用memory channel,容器为1000,事务容量为100
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 将channel讲source和sink关联
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
时间: 2024-12-20 01:17:34

Flume介绍的相关文章

Flume介绍与安装

搭建环境 部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放 Hadoop等组件运行包.因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下 创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app). Hadoop搭建环境: 虚拟机操作系统: CentOS6.6 64位,单核,1

详细图解 Flume介绍、安装配置

写在前面一: 本文总结"Hadoop生态系统"中的其中一员--Apache Flume 写在前面二: 所用软件说明: 一.什么是Apache Flume 官网:Flume is a distributed, reliable, and availableservicefor efficientlycollecting, aggregating, and moving large amounts of log data. It has a simple and flexible arch

flume介绍与入门

1 .背景 flume是由鼎鼎大名的cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop相关组件之一.尤其近几年随着flume的不断被完善以及升级版本的逐一推出,特别是flume-ng;同时flume内部的各种组件不断丰富,用户在开发的过程中使用的便利性得到很大的改善,现已成为apache top项目之一. 2 .概述 1.  什么是flume? apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据

flume介绍及应用

版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667 flume的概念 1.     flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera.但随着 FLume 功能的扩展,Flume OG 代码工程臃肿.核心组件设计不合理

Flume介绍及其安装

一. Flume是什么? Flume是一个分布式,可靠的系统.它能够高效的收集,整合数据,还可以将来自不同源的大量数据移动到数据中心存储. Flume是Apache下的一个顶级项目.Flume不仅可以收集整合日志数据,因为数据源是可以自定义的,Flume能够用于传输大量日志数据,这些数据包含到不仅限于网络传输数据.社交媒体生成的数据.邮件信息等等. 当前的版本有0.9.x和1.x.新版本具有更加灵活的配置和性能上的改进,推荐使用1.x版本.本文介绍使用的是1.8版本. 二.Flume的数据流模型

_00017 Flume的体系结构介绍以及Flume入门案例(往HDFS上传数据)

博文作者:妳那伊抹微笑 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:hadoop,数据分析与挖掘 转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作! qq交流群:214293307  (期待与你一起学习,共同进步) # 学习前言 想学习一下Flume,网上找了好多文章基本上都说的很简单,只有一半什么的,简直就是坑爹,饿顿时怒火就上来了,学个东西真不容易,然后自己耐心的把这些零零碎碎的东西整理整理,各种

大数据flume日志采集系统详解

一.flume介绍 flume 是一个cloudera提供的 高可用高可靠,分布式的海量日志收集聚合传输系统.Flume支持日志系统中定制各类数据发送方,用于收集数据.同时flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力. 二.功能介绍   日志收集 Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据. 流程:恒生数据接收中间件---file.txt  哪个端口进行监控 ---

FLUME日志收集

一.FLUME介绍 Flume是一个分布式.可靠.和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. 设计目标: (1) 可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失.Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除:如果数据发送失败,可以重新发送.),Store on fa

【转】Flume日志收集

from:http://www.cnblogs.com/oubo/archive/2012/05/25/2517751.html Flume日志收集 一.Flume介绍 Flume是一个分布式.可靠.和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. 设计目标: (1) 可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失.Flume提供了三种级别的可靠性保障,从强到弱依次分别为:e