flume介绍与原理(一)

Flume介绍与原理 1:什么是Flume? apache Flume 是一个可以收集列如日志,事件等数据资源,将这些数量极大的数据从各项数据资源中集中起来的存储工具,服务,或者数字集中机制,flume具有高可用分布式,配置工具,设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,Hbase等集中存储器中,结构如下图。 2:应用的场景 比如我们在做一个电子商务网站,我们想从消费用户中访问点特定的节点区域来分析消费者的行为或购买意图,这样我们就可以更加快速的将客户想要的推送到界面上, 实现这些我们需要 阅读详情

1 .背景

  flume是由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop相关组件之一。尤其近几年随着flume的不断被完善以及升级版本的逐一推出,特别是flume-ng;同时flume内部的各种组件不断丰富,用户在开发的过程中使用的便利性得到很大的改善,现已成为apache top项目之一.

 

2 .概述

   1.  什么是flume?

   apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。其结构如下图所示:

      

  2.应用场景

    比如我们在做一个电子商务网站,然后我们想从消费用户中访问点特定的节点区域来分析消费者的行为或者购买意图. 这样我们就可以更加快速的将他想要的推送到界面上,实现这一点,我们需要将获取到的她访问的页面以及点击的产品数据等日志数据信息收集并移交给Hadoop平台上去分析.而Flume正是帮我们做到这一点。现在流行的内容推送,比如广告定点投放以及新闻私人定制也是基于次,不过不一定是使用FLume,毕竟优秀的产品很多,比如facebook的Scribe,还有Apache新出的另一个明星项目chukwa,还有淘宝Time Tunnel。
3.Flume的优势

      1.  Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase

      2.  当收集数据的速度超过将写入数据的时候,也就是当收集信息遇到峰值时,这时候收集的信息非常大,甚至超过了系统的写入数据能力,这时候,Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供一共平稳的数据.

     3.   提供上下文路由特征

     4.   Flume的管道是基于事务,保证了数据在传送和接收时的一致性.

     5.   Flume是可靠的,容错性高的,可升级的,易管理的,并且可定制的。 

4. Flume具有的特征:

    1. Flume可以高效率的将多个网站服务器中收集的日志信息存入HDFS/HBase中

    2. 使用Flume,我们可以将从多个服务器中获取的数据迅速的移交给Hadoop中

    3. 除了日志信息,Flume同时也可以用来接入收集规模宏大的社交网络节点事件数据,比如facebook,twitter,电商网站如亚马逊,flipkart等

    4. 支持各种接入资源数据的类型以及接出数据类型

    5. 支持多路径流量,多管道接入流量,多管道接出流量,上下文路由等

    6. 可以被水平扩展

 

 3. Flume的结构

    1. flume的外部结构:

 

    

     如上图所示,数据发生器(如:facebook,twitter)产生的数据被被单个的运行在数据发生器所在服务器上的agent所收集,之后数据收容器从各个agent上汇集数据并将采集到的数据存入到HDFS或者HBase中

 2. Flume 事件

  事件作为Flume内部数据传输的最基本单元.它是由一个转载数据的字节数组(该数据组是从数据源接入点传入,并传输给传输器,也就是HDFS/HBase)和一个可选头部构成.

典型的Flume 事件如下面结构所示:

我们在将event在私人定制插件时比如:flume-hbase-sink插件是,获取的就是event然后对其解析,并依据情况做过滤等,然后在传输给HBase或者HDFS.

3.Flume Agent

  我们在了解了Flume的外部结构之后,知道了Flume内部有一个或者多个Agent,然而对于每一个Agent来说,它就是一共独立的守护进程(JVM),它从客户端哪儿接收收集,或者从其他的 Agent哪儿接收,然后迅速的将获取的数据传给下一个目的节点sink,或者agent. 如下图所示flume的基本模型

Agent主要由:source,channel,sink三个组件组成.

 

Source:

   从数据发生器接收数据,并将接收的数据以Flume的event格式传递给一个或者多个通道channal,Flume提供多种数据接收的方式,比如Avro,Thrift,twitter1%等

Channel:

 channal是一种短暂的存储容器,它将从source处接收到的event格式的数据缓存起来,直到它们被sinks消费掉,它在source和sink间起着一共桥梁的作用,channal是一个完整的事务,这一点保证了数据在收发的时候的一致性. 并且它可以和任意数量的source和sink链接. 支持的类型有: JDBC channel , File System channel , Memort channel等.

sink:

  sink将数据存储到集中存储器比如Hbase和HDFS,它从channals消费数据(events)并将其传递给目标地. 目标地可能是另一个sink,也可能HDFS,HBase.

 

它的组合形式举例:

 

以上介绍的flume的主要组件,下面介绍一下Flume插件:

1. Interceptors拦截器

   用于source和channel之间,用来更改或者检查Flume的events数据

2. 管道选择器 channels Selectors

   在多管道是被用来选择使用那一条管道来传递数据(events). 管道选择器又分为如下两种:

   默认管道选择器:  每一个管道传递的都是相同的events

  多路复用通道选择器:  依据每一个event的头部header的地址选择管道.

3.sink线程

   用于激活被选择的sinks群中特定的sink,用于负载均衡.

 

----------------------------------------------------<完>-------------------------------------------------------

 

参考资料:
http://www.tutorialspoint.com/apache_flume/apache_flume_data_flow.htm
 
 
 
 作者: gongxijun
 请注明转载自 http://www.cnblogs.com/gongxijun/p/5656778.html

Flume原理与代码实例讲解 管道(pipeline):将数据从数据源传输到目标系统,中间可添加处理器进行处理。代理(agent):负责数据采集、传输和处理。Channel:暂存数据,直到Sink将数据传输到目标系统。本文对Flume的原理、代码实例和实际应用场景进行了详细的讲解,帮助读者全面了解Flume在大数据应用中的价值。 阅读详情

相关推荐

给排水工程师的SWMM初体验:从软件界面到第一个简单模型的保姆级上手教程

本文为给排水工程师提供SWMM软件的保姆级上手教程,从界面解析到创建第一个简单模型,详细介绍了SWMM的核心功能和操作步骤。通过30分钟的实践指导,帮助新手快速掌握雨水管网建模的基本技能,提升工作效率。

weixin_28736355的博客 323

Flume + kafka + HDFS构建日志采集系统

&#13; &#13; &#13; &#13; &#13; &#13; &#13; 本文转载自:http://shift-alt-ctrl.iteye.com/blog/2339981...

Hadoop技术博文 1105

Visual Studio Community与Visual Studio Community与VS Code有啥区别

Visual Studio Code提供了基本的代码编辑、调试和版本控制功能,以及丰富的插件和扩展库。Visual Studio Community和Visual Studio Code在功能上有很大的差异,Visual Studio Community提供了比Visual Studio Code更多的功能,包括代码重构、智能提示、图形化设计等。他的优势在于它的轻量级和灵活性。此外,Visual Studio Code还具有丰富的扩展和插件生态系统,用户可以通过安装插件来扩展其功能,从而满足自己的需求。

m0_56551554的博客 2845

大数据之Flume数据采集框架

一、Flume概述 1.1 Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 Flume最主要的作用就是,实时读取服务器本地磁盘数据,将数据写入到HDFS,也可以将数据传送给Kafuka、spark等框架进行数据分析处理。 1.2 Flume基础架构 Flume组成架构如下图所示。 1.2.1 Agent Agent是一个JVM进程,它以事件的形式将数据从源头送至目的。 Agent主要有3个部分

weixin_42796403的博客 1943

CodeBlocks如何将英文环境改为中文

一、下载汉化包(链接如下) 链接:https://pan.baidu.com/s/166U9WGPbJXu2hyD7q9EiJQ 提取码:2333 二、选择路径 将汉化包中的文件(CodeBlocks.mo、zh_CN.mo、zh_CN.po)放到CodeBlocks安装路径下的​​​​​​CodeBlocks/share/CodeBlocks/locale/zh_CN文件夹中,路径中的文件夹没有就新建。 注:此处需严格按照要求来,切勿自定义文件夹名 三、内部调试 打开CodeBlocks,..

云隐雾匿的博客 2万+

【YOLOv8科研级创新】集成HS-FPN特征融合网络,让Neck模块在参数量锐减100W的同时精度跃升

打开确保模型解析器能识别HS_FPN模块。通过将HS-FPN集成到YOLOv8中,我们实现了一个“轻量级多尺度特征融合+精准检测”的目标检测模型。这个改进不仅在工程上能提升多尺度、细粒度场景的检测效果并降低部署成本,更在科研上提供了“选择性轻量级特征融合”的创新思路——这种思路可以延伸到其他检测网络(如Faster R-CNN、SSD)的Neck模块改进中,帮你在论文中打造独特的研究点。

m0_64661770的博客 138

【采集层】Kafka 与 Flume 如何选择(转)

原文链接:【采集层】Kafka 与 Flume 如何选择 采集层 主要可以使用Flume, Kafka两种技术。 Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API. Kafka:Kafka是一个可持久化的分布式的消息队列。 Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一...

weixin_34128411的博客 622

UG\NX二次开发 一个创建小平面体的例子

介绍。

王牌飞行员_里海的博客 445

Flume和Kafka的区别与联系

参考文章:Flume和Kafka的区别与联系 日志采集系统flume和kafka有什么区别及联系,它们分别在什么时候使用,什么时候又可以结合? 一、相同点 同样是流式数据采集框架, flume一般用于日志采集,可以定制很多数据源,减少开发量,基本架构是一个flume进程agent(source、拦截器、选择器、channel<Memory Channel、File Channel>、sink),其中传递的是原子性的event数据;使用双层Flume架构可以实现一层数据采集,一层数据集合

justlpf的专栏 5769

位置点位到达判断FC(Easy+Codesys+博途平台)

IN rActPositon REAL 轴当前实际位置 1IN arAbsPosition REAL[10] 各工作点位坐标 2IN rDeadZone REAL 位置达到判断域值 范围 3OUT abInAbsPos BOOL[10] 到达各绝对定位点位标志 位置到达输出 4VAR i INT 循环计数 5VAR rErr REAL 位置偏差 6。

RXXW_Dor的博客 537

QGis二次开发 —— 2、第一个程序 - 加载栅格tif与矢量shp文件(附源码)

QGis二次开发 —— 2、第一个程序 - 加载栅格tif与矢量shp文件(附源码)

1100

Flume个人心得笔记

一、概述 Flume是Apache提供的开源的、分布式的、可靠的日志收集系统 能够有效的收集、聚合、传输大量的日志数据 Flume有2个版本:Flume-og(Flume0.9x)和Flume-ng(Flume1.X)。Flume-og和Flume-ng不兼容 二.Flume的特性 可靠性:事务型的数据传递,保证数据的可靠性。一个日志交给flume来处理,不会出现此日志丢失或未被处理的情况...

LiuY521的博客 1112

SQL基础:HQL之常用的行列转换应用总结

行列转换是数据开发者的基本技能,也是面试重点,在数据开发中处处可见,本文对常见的几种情况进行了总结,包括了多行转多列,多行转单列,多列转多行,单列转多行的几种情况,并给出了解决思路和方法,读者可根据本文给出的思路灵活应对业务中遇到的问题。

石榴姐yyds 1800

flume架构介绍!

一。什么是flume?         一个日志收集工具,具有分布式,高可靠,高可用等特点。接受各类型数据发送方,对数据可进行简单的处理,传输到各类数据接收方。 二。架构    source

A coder of life 1281

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

flume源码阅读-总体介绍

flume源码阅读之总体介绍 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 Flume官网地址: Flume , 源代码地址:source为什么读flume源代码 为什么要去读flume的源码,最近公司的

我不是为了输赢 我就是认真 1168

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

我想看看Flume

我想看看Flume Flume 是什么 ​ 在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架。 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的==海量日志采集、聚合和传输的系统== Flume支持在日志系统中定制各类数据发送方,用于收集数据; Flume提供对数据进行简单处理,并**写到各种数据接受方(可定制)**的能力

aLivable_Dedode的博客 417

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

flume(日志收集系统)

概念 flume:分布式日志收集系统,接收数据并处理,然后发送到HFDS 原理 Webserver把数据给source封装成event,传给channel存储(相当于缓存),如果HFDS需要则通过sink来取 工作流程图 ...

weixin_44903465的博客 134

一Flume介绍

Flume介绍 1.Flume特点 Flume是一个分布式的、可靠的、高可用的海量日志采集、聚合和传输的系统 数据流模型:Source-Channel-Sink 事务机制保证消息传递的可靠性 内置丰富插件,轻松与其他系统集成 Java实现,优秀的系统框架设计,模块分明,易于开发 2.Flume原型图 Flume原型图.png 3.Flume基本组件 ...

weixin_30520015的博客 400

Logstash概念与原理、与Flume的对比

Logstash概念 Logstash是一款开源的数据收集引擎,具备实时管道处理能力。简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合ElasticSearch以及Kibana,能够极大方便数据的处理与分析。通过200多个插件,logstash可以接受几乎各种各样的数据。包括日志、网络请求、关系型数据库、传感器或物联网等等。 Logstash工作过程 如上图,Logst...

Flytiger 2万+

Flume简介及Flume部署、原理和使用介绍

Flume简介及Flume部署、原理和使用介绍 Flume概述 ​ Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 ​ Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。 Flume架构 Agent Agent是一个JVM进程,它以事件的形式将数据从源头送至目的。 Agent主要有3个部分组成,Source、Channel、Sink。 Source Source是负责接收数据到Flum

wt334502157的博客 2096
上一篇: Hbase架构以及应用介绍
下一篇: Azkaban简介和使用
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值