大数据平台Lambda架构详解
Lambda架构由Storm的作者Nathan Marz提出。旨在设计出一个能满足。实时大数据系统关键特性的架构,具有高容错、低延时和可扩展等特。
Lambda架构整合离线计算和实时计算,融合不可变(Immutability,读写分离和隔离 一系列构原则,可集成Hadoop,Kafka,Storm,Spark,HBase等各类大数据组件。
Lambda架构的主要思想就是将大数据系统构建为多个层次,三层架构:批处理层、实时处理层、服务层 ,如下图
批处理层:批量处理数据,生成离线结果
实时处理层:实时处理在线数据,生成增量结果
服务层:结合离线、在线计算结果,推送上层
1.批处理层
在Lambda架构中,实现batch view = function(all data)的部分被称之为 batch layer。它承担了两个职责:
存储Master Dataset,这是一个不变的持续增长的数据集
针对这个Master Dataset进行预运算
显然,Batch Layer执行的是批量处理,例如Hadoop或者Spark支持的Map-Reduce方式。 它的执行方式可以用一段伪代码来表示
1
function runBatchLayer():
while (true):
recomputeBatchViews()
1
2
3
利用Batch Layer进行预运算的作用实际上就是将大数据变小,从而有效地利用资源,改善实时查询的性能。但这里有一个前提,
就是我们需要预先知道查询需要的数据,如此才能在Batch Layer中安排执行计划,定期对数据进行批量处理。 此外,还要求这些预运算的统计数据是支持合并(merge)的。
2实时处理层
只要batch layer完成对batch view的预计算,serving layer就会对其进行 更新。这意味着在运行预计算时进入的数据不会马上呈现到batch view中。这对于 要求完全实时的数据系统而言是不能接受的。要解决这个问题,就要通过speed layer。从对数据的处理来看,speed layer与batch layer非常相似,它们之间最大的 区别是前者只处理最近的数据,后者则要处理所有的数据。
另一个区别是为了满足最 小的延迟,speed layer并不会在同一时间读取所有的新数据,相反,它会在接收到 新数据时,更新realtime view, 而不会像batch layer那样重新运算整个view。 speed layer是一种增量的计算,而非重新运算(recomputation)。
因而,Speed Layer的作用包括:
对更新到serving layer带来的高延迟的一种补充
快速、增量的算法
最终Batch Layer会覆盖speed layer
Speed Layer的等式表达如下所示:
realtime view = function(realtime view, new data)
1
3服务层
Batch Layer通过对master dataset执行查询获得了batch view,而 Serving Layer就要负责对batch view进行操作,从而为最终的实时查询提供支撑。因此Serving Layer的职责包含:
对batch view的随机访问
更新batch view Serving Layer应该是一个专用的分布式数据库,例如Elephant
DB,以支持对batch view的加载、随机读取以及更新。
注意,它并不支持对batch view的随机写,因为随机写会为数据库引来许多复杂 性。简单的特性才能使系统变得更健壮、可预测、易配置,也易于运维。
总结下来,Lambda架构就是如下的三个等式
batch view = function(all data)
realtime view = function(realtime view, new data)
query = function(batch view . realtime view)
1
2
3
4.Lambda架构组件选型
下图给出了Lambda架构中各个层常用的组件。数据流存储可选用基于不 可变日志的分布式消息系统Kafka;Batch Layer数据集的存储可选用Hadoop的 HDFS,或者是阿里云的ODPS;Batch View的预计算可以选用MapReduce或 Spark;Batch View自身结果数据的存储可使用MySQL(查询少量的最近结果数 据),或HBase(查询大量的历史结果数据)。Speed Layer增量数据的处理可选用 Storm或Spark Streaming;Realtime View增量结果数据集为了满足实时更新的效 率,可选用Redis等内存NoSQL
5.Lambda架构组件选型原则
Lambda架构是个通用框架,各个层选型时不要局限时上面给出的组件,特 别是对于View的选型。从我对Lambda架构的实践来看,因为View是个和业务关联 性非常大的概念,View选择组件时关键是要根据业务的需求,来选择最适合查询的 组件。不同的View组件的选择要深入挖掘数据和计算自身的特点,从而选择出最适 合数据和计算自身特点的组件,同时不同的View可以选择不同的组件。
6.Lambda架构优缺点
优点:
实时:低延迟处理数据
可重计算:由于数据不可变,重新计算一样可以得到正确的结果
容错:第二点带来的,程序bug、系统问题等,可以重新计算
复杂性分离、读写分离
缺点:
开发和运维的复杂性:Lambda需要将所有的算法实现两次,一次是为批处理系统,另一次是为实时系统,还要求查询得到的是两个系统结果的合并
大数据平台Lambda架构详解相关推荐
- 大数据平台作业调度系统详解-理论篇
大数据开发平台的核心组件之一:作业调度系统. 作业调度系统是一个相对复杂的系统,涉及的内容繁杂,针对的场景多种多样,实现的方案千差万别,是一个需要理论和实践并重的系统. 本文先从大的场景划分的角度对市 ...
- 大数据发展规划及技术详解
大数据发展规划及技术详解 1.BI的流程:主要是阐述一下BI的流程:第一,需求分析阶段,要搞清楚用户需求,就本例用户想要的是volte业务使用情况的月报表,必须要搞清楚月报表中包括哪些指标(包括维度指 ...
- 大数据平台基础架构指南
之前的文章,整理了一下,补充了一些内容,做了一些更新,现已出版上市了.无耻的推广一下哈 :) 淘宝,JD都有现货,Amazon,搜书名 < 大数据平台基础架构指南 > 链接:https:/ ...
- <Zhuuu_ZZ>大数据技术之Flume详解
大数据技术之Flume详解 一 Flume配置 Flume安装地址 环境配置 验证 二 Flume基础架构 1.定义 2.Flume组成架构 3.Flume组件 Agent Source Channe ...
- 企业大数据平台仓库架构建设思路
https://yq.aliyun.com/articles/57901 总体思路 随着互联网规模不断的扩大,数据也在爆炸式地增长,各种结构化.半结构化.非结构化数据不断地产生.新环境下的数据应用呈现 ...
- 【SDCC讲师专访】吕毅:链家网大数据平台的架构演进
2016年11月18日-20日,由CSDN重磅打造的年终技术盛会,SDCC 2016中国软件开发者大会将在北京举行,大会面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,从而助力企业的技术升 ...
- 分享 | 企业大数据平台仓库架构建设思路
本文根据阿里云高级技术专家李金波在首届阿里巴巴在线峰会的<企业大数据平台仓库架构建设思路>的分享整理而成.随着互联网规模不断的扩大,数据也在爆炸式地增长,各种结构化.半结构化.非结构化数据 ...
- 90页PPT | 金融大数据平台总体架构方案(附下载)
今天给大家分享一下智慧金融行业的大数据平台总体架构是如何设计的,包括: 大数据分析平台综述 大数据分析平台总体架构 大数据分析平台演进路线 大数据分析平台实施重点 数据治理管理平台 里面设计的详细的架 ...
- 智慧金融大数据平台总体架构方案
大家好,我是一哥,今天给大家分享一下智慧金融行业的大数据平台总体架构是如何设计的,包括: 大数据分析平台综述 大数据分析平台总体架构 大数据分析平台演进路线 大数据分析平台实施重点 数据治理管理平台 ...
最新文章
- oss生成唯一文件名_根据结构化自然语言规范自动生成精确预言
- linux 格式化未分配区间,Linux 格式化分区 报错Could not stat --- No such file or directory 和 partprobe 命令...
- 鸿蒙2.0 安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
- 4.5丢弃法 drop out
- 点乘叉乘坐标公式_点积与叉乘的运算与物理意义
- selenium自动化测试_49自动化测试中最常见的Selenium异常
- vm安装net失败_使用minikube安装kubernetes和dashboard
- 微信小程序(2)--下拉刷新和上拉加载更多
- 《计算机网络》简要学习笔记:未完自用
- Vue中无法更改element ui组件样式问题
- html 好看表格样式,简单但是好看的表格样式
- 计算机网络6版,计算机网络教程(第6版)
- 光圈,焦距,工作距离与景深之间的关系。
- [数据仓库复习] —— 维度数据模型
- 领英辅助工具领英精灵的下载安装的细节和方法
- 使用Redis实现附近的人及打车服务
- 【Proteus仿真】BCD码转十进制(74HC42)
- 超级电容怎么才能把内阻做小_如何测试超级电容内阻?
- PS里面的快速选区工具
- TP5查询构造器查询语句select、find、colum、value详解