五:大数据架构回顾-LambdaPlus架构
Blink是阿里云在 Apache Flink 基础上深度改进的实时计算平台,Blink旨在将流处理和批处理统一,实现了全新的 Flink SQL 技术栈,在功能上,Blink支持现在标准 SQL 几乎所有的语法和语义,在性能上,Blink也比社区Flink更加强大。自 2019 年 1 月起,阿里巴巴逐步将内部维护的 Blink 回馈给 Flink 开源社区,Flink 1.9.0 是阿里内部版本 Blink 合并入 Flink 后的首次发版,Flink 1.10 版本可以看作一个比较重要的里程碑式版本,至此,Blink 全部功能都已经进入 Flink,包括 Blink 中比较关键的设计和通用的优化。
为了实现流批处理一体化,Blink采用的将流处理视为批处理的一种特殊形式。因此在内部维持了若干张张流表。通过缓存时间进行约束,限定在一个时间段内的数据组成的表,从而将实时流转为微批处理。理论上只要把时间窗口开的足够大,Flink的流表可以存下上百日的数据,从而保证微批处理的“微”足够大可以替换掉离线处理数据。但这样做存在几个问题:
- Flink的流表是放在内存中,不做持久化处理的。一旦任务发生异常,内存数据丢失,Flink是需要回溯上游消息流,从而转为Kappa的结构。
- 数据窗口开的越大,内存成本越高。受限于成本,对大量数据处理仍然有可支持的物理空间上限。
- 下游接收的通常都是处理结果,对于内存中的流表数据是无法直接访问的。这样无形中增加了开发成本。
Lambda plus 是基于 Tablestore 和 Blink 打造的云上存在可以复用、简化的大数据架构。
- 表格存储(Tablestore):是阿里云自研的 NoSQL 多模型数据库,提供PB级结构化数据存储、千万TPS以及毫秒级延迟的服务能力,表格存储提供了通道服务(TunnelService)支持用户以按序、流式地方式消费写入表格存储的存量数据和实时数据,同时表格存储还提供了多元索引功能,支持用户对结果视图进行实时查询和分析。
Lambda plus大数据架构
Lambda batch层:
- Tablestore 直接作为 master dataset,支持用户直读,配合 Tablestore 多元索引,用户的线上服务直读、ad-hoc 查询 master dataset 并将结果返回给用户;
- blink 批处理任务向 Tablestore 下推SQL的查询条件,直读 Tablestore master dataset,计算 batch view,并将 batch view 重新写回 Tablestore;
Streaming层:
- blink 流处理任务通过表格存储 TunnelService API 直读 master dataset 中的实时数据,持续产生 stream view;
- Kappa 架构的 backfill 任务,可以通过建立全量类型数据通道,流式消费 master dataset 的存量数据,从新计算;
Serving层:
- 为存储 batch view 和 stream view 的 Tablestore 结果表建立全局二级索引和多元索引,业务可以低延迟、ad-hoc方式查询;
Lambda plus的数据链路
问题:Query 时 Batch view 与 Real-time View 的溶合问题?
原Lambda架构在数据写入、存储、对接计算组件以及展示层面临的挑战
- 写入层上,Lambda 没有对数据写入进行抽象,而是将双写流批系统的一致性问题反推给了写入数据的上层应用;
- 存储上,以HDFS为代表的 master dataset 不支持数据更新,持续更新的数据源只能以定期拷贝全量snapshot到HDFS的方式保持数据更新,数据延迟和成本比较大;
- 计算逻辑需要分别在流批框架中实现和运行,而在类似Storm的流计算框架和Hadoop MR的批处理框架做job开发、调试、问题调查都是比较复杂的;
- 结果视图需要支持低延迟的查询分析,通常还需要将数据派生到列存分析系统,并保证成本可控;
针对上述原Lambda架构上述的技术问题,Lambda plus的解决思路:
- 针对数据写入的问题,Lambda plus 数据只需要写入表格存储,Blink 流计算框架通过通道服务API直读表格存储的实时数据,不需要用户双写队列或者自己实现数据同步;
- 存储上,Lambda plus 直接使用表格存储作为 master dataset,表格存储支持用户tp系统低延迟读写更新,同时也提供了索引功能 ad-hoc 查询分析,数据利用率高,容量型表格存储实例也可以保证数据存储成本可控;
- 计算上,Lambda plus 利用 blink 流批一体计算引擎,统一流批代码;
- 展示层,表格存储提供了多元索引和全局二级索引功能,用户可以根据解决视图的查询需求和存储体量,合理选择索引方式;
总结,表格存储实现了batch view、master dataset 直接查询、stream view 的功能全集,Blink实现流批统一,Tablestore 加 blink 的 Lambda plus 模式可以明显简化 Lambda 架构的组件数量,降低搭建和运维难度,拓展用户数据价值。
Lambda plus的适用场景
基于 Tablestore 和 Blink 的 Lambda plus 架构,适用于基于分布式NoSQL数据库存储数据的大数据分析场景,如IOT、时序数据、爬虫数据、用户行为日志数据存储等,数据量以TB级为主。典型的业务场景如:大数据舆情分析系统
示例图解二:
参考资料
- https://blog.csdn.net/zhaowei121/article/details/103459716
- https://blog.csdn.net/weixin_43970890/article/details/90905352
- https://developer.aliyun.com/article/752406
- https://www.infoq.cn/article/vOquL47B*YElhpP6OCva?utm_source=related_read
- https://zhuanlan.zhihu.com/p/68276630
五:大数据架构回顾-LambdaPlus架构的更多相关文章
- 大数据时代的IT架构设计
大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著 ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 ...
- 新书发布《大数据时代的IT架构设计》
<大数据时代的IT架构设计>以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的讨论.<大数据时代的IT架构设计>作者来自互联网.教育.传统行业 ...
- 读<大数据日知录:架构与算法>有感
前一段时间, 一个老师建议我能够学学 '大数据' 和 '机器学习', 他说这必定是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有非常深的认识, 总觉得它们是那么的缥缈, ...
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普 ...
- 我读《大数据时代的IT架构设计》
架构设计是一门艺术,对架构的掌握要通过多看,多学,多交流,多积累,从实战架构上总能吸收到很好的营养,这边书虽然 (一).hadoop技术处理电信行业的上网日志 根据上网的url或未知url爬取内容,进 ...
- 零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】
/Mon *************摘要************** 计划任务 )一次性计划任务 服务:atd 命令:at 服务存放文件:/etc/init.d/atd 系统配置文件:/etc/at. ...
- 零基础学习云计算及大数据DBA集群架构师【企业级运维技术及实践项目2015年1月29日周五】
LNMP/LEMP项目搭建 { 项目框架 # Linux_____WEB_____PHP_____DB # rhel7_____apache__-(libphp5.so)-__php__-(php-m ...
- 零基础学习云计算及大数据DBA集群架构师【Linux系统环境及权限管理12.21-12.25】
从这周开始Linux的学习,老师是一位女老师,这到给了更多的信心,老师讲得很快,如果说只谈记命令的话是不多,但是要真正去理解,其实内容还是挺多的,我都是以老师讲的内容为主线,然后自己再看鸟哥的书做加深 ...
- 零基础学习云计算及大数据DBA集群架构师【预科2015年12月14日周一】
1.第一天比较轻松,上午填表格,录指纹,拍照片,做自我介绍. 2.下午老师简单介绍了一下PC\交换机\路由器\塔式服务器\机架式服务器(1U\2U)\刀片服务器\磁带机 3.班主任陈老师朱老师,预科秦 ...
- 零基础学习云计算及大数据DBA集群架构师【Linux Bash Shell编程及系统自动化2015年1月21日周四】
lvy老师教项目课程,以及代课了shell部分课程,大家都觉得这位老师不行,上课时做的操作很多都是错误的,觉得她基础不好.而且,她不能解释原因,学生问为什么,她不知道.崩溃啊.向xx培训机构反应后,说 ...
随机推荐
- C#(winform)自定义ListItem类方便ComboBox操作
public class ListItem { /// <summary> /// Key /// </summary> public string Key { get; se ...
- fs.1.10 ON CENTOS7 docker镜像制作
概述 freeswitch是一款简单好用的VOIP开源软交换平台. centos7 docker上编译安装fs1.10版本的流程记录. 环境 docker engine:Version 24.0.6 ...
- KingbaseES V8R6 复制冲突之锁类型冲突
背景 昨天遇到客户现场的一个有关复制冲突的问题 备库报错:ERROR: canceling statement due to conflict with recovery,user was holdi ...
- #KMP,容斥,dp#洛谷 5770 [JSOI2016] 无界单词
题目传送门 分析 显然如果存在长度大于一半的border那么必然存在小于一半的 border,所以容斥一下, 设 \(dp[i]\) 表示长度为 \(i\) 的不存在公共前后缀的字符串个数,那么 \( ...
- #贪心,构造#AT2266 [AGC008D] K-th K
题目 给你一个长度为 \(N\) 的整数序列 \(X\),请判断是否存在一个满足下列条件的整数序列 \(a\),如果存在,请构造一种方案 条件如下: \(a\) 的长度为 \(N^2\),并且满足数字 ...
- #2-SAT,Tarjan,前缀优化建边#洛谷 6378 [PA2010]Riddle
题目 \(n\) 个点 \(m\) 条边的无向图被分成 \(k\) 个部分.每个部分包含一些点. 请选择一些关键点,使得每个部分恰有一个关键点,且每条边至少有一个端点是关键点. 分析 每条边至少有一个 ...
- 震撼!这个Python模块竟然能自动修复代码!
说到Python的强大的地方,那真的是太多了,优雅.简洁.丰富且强大的第三方库.开发速度快,社区活跃度高等,所以才使得Python才会如此的受欢迎. 今天给大家介绍一个特别暴力的Python库: Fu ...
- 在 RedHat、 CentOS、 Fedora 和 Debian、 Ubuntu、 Linux Mint、 Xubuntu 等这些系统中安装 Teamviewer
这篇指南介绍了怎么样在 RedHat. CentOS. Fedora 和 Debian. Ubuntu. Linux Mint. Xubuntu 等这些系统中安装 Teamviewer 9.Teamv ...
- 重新点亮linux 命令树————进程的控制[二十二]
前言 简单整理一下进程的控制 正文 进程优先级 nice 从-20-19,值越小,优先级越高 renice 从新设置优先级 进程的作业控制: job 那么先来创建一个进程. 那么使用top -p 26 ...
- 重走py 之路 ——字典和集合(二)
前言 python 中有6大标准类型: 数字(Number) 字符串(String) 列表(List) 元组(Tumple) 集合(Set) 字典(Dictionary) 前面已经介绍了上面4种,还有 ...