flume用场景及架构原理

Flume是什么

1.flume可以将采集到的数据存储到HDFS上,也可以放在Hbase上。
2.flume就是一个中间插件,他的作用就是屏蔽数据源和数据存储系统的差异。可以在不同的数据源采集数据,因为数据源是多样化的。
数据源的多样化和数据存储系统的多样化,flume作为一个中间插件把数据源和存储系统实现多对多的关系。
Flume的优点

Flume OG与NG区别

Flume NG基本架构

1.Agent由Source 、 channel sink组成。
2.Source是用来获取数据,可以从文本文件中和系统日志中和HTTP中获取数据。Source 获取数据传给后面的Agent
3.channel 在source sink之间作为数据的缓存,sink的数据不能及时传输出去,可以讲数据缓存的内存或者磁盘上面,数据缓存在内存和磁盘中是不同的,在内存中断电了数据就丢失,磁盘的就不会。

1.Agent3也是可以去掉的,不过在这里起到缓冲的过程。比如说Agent3前面的agent个数非常多,没有经过Agent3的汇总,将会有大量的小文件直接写到HDFS上,非常不利于存储,
因为我们知道HDFS适合存储大文件而不适合大量的小文件。
2.当然如果数据量不大的话就不需要Agent3这样的多级Agent了,根据实际情况来选择适合的方式。
Flume NG核心概念

Flume NG核心概念--Event

Flume NG核心概念--Client

Flume NG核心概念--Agent

Flume NG核心概念--Source


Flume NG核心概念--channel和 sink

Flume NG核心概念--channel

磁盘channel 是通过预写日志的方式来实现,就是在数据写成功之前先写log,日志写成后我们就任务数据写成功了,如果日志写成功了,数据没写成功,重启之后我们可以通过这个日志来恢复数据
Flume NG核心概念--sink

flume用场景及架构原理的更多相关文章
- Flume应用场景及架构原理
Flume概念 Flume是一个分布式.可靠.和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. ...
- Hive深入学习--应用场景及架构原理
Hive背景介绍 Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的.互联网现在进入了大数据时代,大数据是现在互联网的趋势,而hadoop就是大数据时代里的核 ...
- 深入学习Hive应用场景及架构原理
Hive背景介绍 Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的.互联网现在进入了大数据时代,大数据是现在互联网的趋势,而hadoop就是大数据时代里的核 ...
- NET/ASP.NET Routing路由(深入解析路由系统架构原理)(转载)
NET/ASP.NET Routing路由(深入解析路由系统架构原理) 阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模 ...
- 简单理解Hadoop架构原理
一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等. 有些朋友可能 ...
- Elasticsearch架构原理
架构原理 本书作为 Elastic Stack 指南,关注于 Elasticsearch 在日志和数据分析场景的应用,并不打算对底层的 Lucene 原理或者 Java 编程做详细的介绍,但是 Ela ...
- zz《分布式服务架构 原理、设计与实战》综合
这书以分布式微服务系统为主线,讲解了微服务架构设计.分布式一致性.性能优化等内容,并介绍了与微服务系统紧密联系的日志系统.全局调用链.容器化等. 还是一样,每一章摘抄一些自己觉得有用的内容,归纳整理, ...
- 你懂RocketMQ 的架构原理吗?
前言 前面我们跟大家聊了聊什么是消息中间件,以及哪些场景使用哪些消息中间件更加合适. 我们了解到RocketMQ是java语言开发的,我们能更深入的阅读源码了解它的底层原理,而且它具有优秀的消息中间件 ...
- 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点
大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...
随机推荐
- Redis Cluster 4.0高可用集群安装、在线迁移操作记录
之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...
- TypeScript 之 书写.d.ts文件
https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Writing%20Definition%20Files.html ...
- 【java】注释
一.注释 1. 注释类型 [a]. 单行注释 // 单行注释 [b]. 多行注释 /* 多行注释 */ [c]. 文档注释 /** 文档注释 */ 一般情况下,需求,实现方式用多行注释,类和方法上 ...
- 【python】序列化和反序列化
序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象.在python的标准库中,专门提供了json库与pickle库 ...
- jenkins 邮件配置 二 ***
Jenkins 有两种邮件通知方式: 1.Jenkins自带的“E-mail Notification” 2.插件:Extended E-mail Notification,是可编辑的邮件配置方式. ...
- 删除右键菜单中的Git
在打开的注册表中找到:HKEY_CLASSES_ROOT,并点HKEY_CLASSES_ROOT前面的小三角:找到Directory,点击前面的小三角:找到Background,点击前面的小三角:打开 ...
- 黄聪:jquery.bootgrid表格插件有的属性(visibleInSelection、cssClass、headerCssClass、headerAlign)不能识别的解决办法
主要是属性大小写问题,修改jquery.bootgrid.js文件,在function loadColumns()方法里面添加下面的语句就好了 data.headerAlign = data.head ...
- PHP $a='abcdef';请取出$a的值并打印第一个字母
echo $a[0];echo $a{0};echo chr(ord($a));echo substr( $a, 0,1);
- 关于Java与Map的那点事
Java将Map拼接成“参数=值&参数=值”: 把一个map的键值对拼接成“参数=值&参数=值”即“username=angusbao&password=123456”这种形式 ...
- ALGO-140_蓝桥杯_算法训练_P1101
有一份提货单,其数据项目有:商品名(MC).单价(DJ).数量(SL).定义一个结构体prut,其成员是上面的三项数据.在主函数中定义一个prut类型的结构体数组,输入每个元素的值,计算并输出提货单的 ...