flume介绍

Henry、攀 Henry、攀     2022-09-10     104

关键词:

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

flume架构以及应用介绍[转]

在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出我们本文的主角... 查看详情

flume介绍

Flume是一个分布式的,效率高的用来收集日志数据的开源框架。它的架构是基于流式数据,有3个重要的组件,分别是Source,Channel和Sink。Flume架构和特点Flume架构图如上,非常简单。一个Flume的事件(event)表示数据流中的一个单位,... 查看详情

flume详细介绍,安装,配置

 一、什么是Flume?  flume作为cloudera开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume初始的发行版本目前被统称为FlumeOG(originalgeneration),属于cloudera。但随着FLume功能的扩展,FlumeOG代码工程臃肿、核心组件设计... 查看详情

flume日志收集系统介绍

转自:http://blog.csdn.net/a2011480169/article/details/51544664在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程:从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也... 查看详情

flume介绍及应用

 版权声明:本文为yunshuxueyuan原创文章。如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667flume的概念1.     flume作为cloudera开发的实时日志收集系统,受到了业界的认可与广泛应用。Fl... 查看详情

17-etl工具大数据架构flume介绍flume组件介绍

9.8ETL9.8.1概念描述ETL理解ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据设计分为3部分数据抽取数据的... 查看详情

flume介绍及其安装(代码片段)

一.Flume是什么?Flume是一个分布式,可靠的系统。它能够高效的收集,整合数据,还可以将来自不同源的大量数据移动到数据中心存储。Flume是Apache下的一个顶级项目。Flume不仅可以收集整合日志数据,因为数据源是可以自定义的... 查看详情

flume的介绍和简单操作(代码片段)

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

flume介绍及调优

一、概述Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,... 查看详情

flume的介绍和简单安装

一:介绍(1)日志采集系统(2)是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据。(3)具有基于流数据流的简单灵活的架构。(4)具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大... 查看详情

flume学习之路flume的基础介绍(代码片段)

一、背景Hadoop业务的整体开发流程:从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步。许多公司的平台每天会产生大量的日志(一般为流式数据,如,... 查看详情

flume学习之路flume的基础介绍(代码片段)

目录一、背景二、Flume的简介三、FlumeNG的介绍3.1 Flume特点3.2 Flume的一些核心概念3.3 FlumeNG的体系结构3.4 Source3.5 Channel3.6 Sink四、Flume的部署类型4.1 单一流程4.2 多代理流程(多个agent顺序连接)4.3 流的合并(多个Agent... 查看详情

flume的原理及介绍线上数据-》flume-》kafka-;hdfs/hadoop

1.背景 flume是由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop相关组件之一。尤其近几年随着flume的不断被完善以及升级版本的逐一推出,特别是flume-ng;同时flume内部的各... 查看详情

flume介绍与安装

搭建环境部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root... 查看详情

flume介绍及调优

一、概述Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,... 查看详情

flume学习之路flume的source类型(代码片段)

一、概述官方文档介绍:http://flume.apache.org/FlumeUserGuide.html#flume-sources二、FlumeSources描述2.1 AvroSource2.1.1 介绍Avro端口监听并接收来自外部的Avro客户流的事件。当内置Avro去Sinks另一个配对Flume代理,它就可以创建分层采集的拓扑... 查看详情

使用flume将kafka数据sink到hbase

1.hbasesink介绍1.1HbaseSink1.2AsyncHbaseSink2.配置flume3.运行测试flume4.使用RegexHbaseEventSerializer来处理些HBASE的值5.效率测试1.hbasesink介绍如果还不了解flume请查看我写的其他flume下的博客。接下来的内容主要来自flume官方文档的学习。顺便也... 查看详情

flume之各种channel的介绍及参数解析

参考技术AChannel被设计为Event中转临时缓冲区,存储Source收集并且没有被Sink读取的Event,为平衡Source收集和Sink读取数据的速度,可视为Flume内部的消息队列。Channel线程安全并且具有事务性,支持source写失败重复写和sink读失败重复... 查看详情