阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读
★ 淘宝搜索阶段
在2008-2012这个阶段,我们重点支持淘宝搜索的业务发展,随着淘宝商品量的不断增加,逐步引入Hadoop、Hbase等开源大数据计算和存储框架,实现了搜索离线系统的分布式化,有力地支持了淘宝搜索业务的发展。但是在这个阶段,我们支持的业务线只有淘系合计不到5个业务线,为此投入了大约10名开发人员,整体效率不高。另一方面相关系统框架代码与淘系业务高度耦合,量身定制了很多特殊代码,不利于架构的推广和其它业务的支持。

★ 组件&平台化阶段
2013年底以来,特别是最近两年,随着集团技术业务线的梳理以及中台化战略的推行,搜索离线系统需要为越来越多的不同业务团队(飞猪、钉钉、1688、AE、Lazada等等)提供支持,技术框架复用、开发效率提升和平台化支持的需求越来越强烈。另一方面随着大数据计算、存储技术的发展,尤其是流计算引擎的飞速发展,离线系统技术架构上的进一步演进也具备了绝佳的土壤。

离线平台技术架构
平台组件和任务流程

上图描述了离线平台技术组件结构,其中部分组件的简介如下:
Maat:分布式任务调度平台,基于Airflow发展而来,主要改进点是调度性能优化、执行器FaaS化、容器化、API及调度功能扩展等四个部分,在保持对Airflow兼容的基础上,大幅提升性能,提高了稳定性。 一个离线任务的多个Blink job会通过Maat建立依赖关系并进行调度。
Bahamut:执行引擎,是整个离线平台的核心,负责离线任务的创建、调度、管理等各种功能,后文会详细介绍。
Blink:Flink的阿里内部版本,在大规模分布式、SQL、TableAPI、Batch上做了大量的优化和重构。离线平台的所有计算任务都是Blink job,包括stream和batch。
Soman:UI模块,与Bahamut后端对接,提供任务信息展示、状态管理等可视化功能,也是用户创建应用的开发业务逻辑的主要入口。
Catalog: 存储表信息管理,提供各种数据源表的DDL能力,负责离线平台存储资源的申请、释放、变更等各种功能。
Hippo:阿里搜索自研的分布式资源管理和任务调度服务,类似于Yarn,提供Docker管理能力,主要服务于在线系统。
Swift:阿里搜索自研高性能分布式消息队列,支持亿级别消息吞吐能力,存储后端为HDFS,存储计算分离架构。
下图则描述了一个离线任务从数据源到产出引擎服务数据的整个过程,流程图分成三层:
数据同步层:将用户定义的数据源表的全量和增量数据同步到Hbase内部表,相当于源表的镜像。这个镜像中我们包含cf和d两个列族,分别存储数据库的镜像和Daily更新的数据。
数据关联计算层:按照数据源中定义的各种关系,将不同维度的数据关联到一起,把数据送到自定义的UDTF中进行处理,产出引擎所需的全量和增量数据。
数据交互层:提供全量和增量数据的存储信息,与在线服务build模块进行交互。
全增量统一的计算模型
那么如何实现对用户屏蔽离线平台内部的这些技术细节,让用户只需要关注业务实现呢?回顾第一节介绍的离线任务概念,离线任务包含全量和增量,它们业务逻辑相同,但是执行模式上有区别。为了让用户能够专注业务逻辑的开发,屏蔽离线平台技术细节实现全增量统一的计算逻辑,我们引入了Business Table(业务表)的概念。
Business Table(业务表):Business Table是一个抽象表,由一个全量数据表和/或一个增量流表组成,全量/增量表的Schema相同,业务含义相同。
基于业务表和数据处理组件,用户可以开发出一个描述离线处理流程的业务逻辑图,我们称之为Business Graph。下图就是一个Business Graph的样例,其中上侧红框标识的就是只包含ODPS全量数据源的Business Table,最下方红框中标识的是包含Hdfs+Swift的Business Table,除此之外我们还支持Mysql+DRC/ODPS+Swift等多种业务表的组合。图中还可以看到Join、UDTF等常用的数据处理组件,业务表与处理组件结合在一起就能够描述常见的离线业务处理逻辑。
参考博客:https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247488245&idx=1&sn=1c70a32f11da7916cb402933fb65dd9f&chksm=e9292ffade5ea6ec7c6233f09d3786c75d02b91a91328b251d8689e8dd8162d55632a3ea61a1&scene=21#wechat_redirect
阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读的更多相关文章
- 《阿里如何实现秒级百万TPS?搜索离线大数据平台大数据平台架构解读》读后感
在使用淘宝时发现搜索框很神奇,它可以将将我们想要的商品全部查询出来,但是我们并感觉不到数据库查询的过程,速度很快.通过阅读这篇文章让我知道了搜索框背后包含着很多技术,对我以后的学习可能很有借鉴. 平时 ...
- 《阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读》--阅读
离线?在阿里搜索工程体系中我们把搜索引擎.在线算分.SearchPlanner等ms级响应用户请求的服务称之为“在线”服务:与之相对应的,将各种来源数据转换处理后送入搜索引擎等“在线”服务的系统统称为 ...
- QQ音乐PB级ClickHouse实时数据平台架构演进之路
导语 | OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过Q ...
- 第四章 电商云化,4.1 17.5W秒级交易峰值下的混合云弹性架构之路(作者:唐三 乐竹 锐晟 潇谦)
4.1 17.5W秒级交易峰值下的混合云弹性架构之路 前言 每年的双11都是一个全球狂欢的节日,随着每年交易逐年创造奇迹的背后,按照传统的方式,我们的成本也在逐年上升.双11当天的秒级交易峰值平时的近 ...
- AI加持的阿里云飞天大数据平台技术揭秘
摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...
- 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击
MaxCompute作为阿里巴巴的主力计算平台,在2018年的双11中,再次不负众望,经受住了双11期间海量数据和高并发量的考验.为集团的各条业务线提供了强劲的计算力,不愧是为阿里巴巴历年双11输送超 ...
- 阿里云HBase全新发布X-Pack 赋能轻量级大数据平台
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
- 大数据平台Hive数据迁移至阿里云ODPS平台流程与问题记录
一.背景介绍 最近几天,接到公司的一个将当前大数据平台数据全部迁移到阿里云ODPS平台上的任务.而申请的这个ODPS平台是属于政务内网的,因考虑到安全问题当前的大数据平台与阿里云ODPS的网络是不通的 ...
- 基于Flink秒级计算时CPU监控图表数据中断问题
基于Flink进行秒级计算时,发现监控图表中CPU有数据中断现象,通过一段时间的跟踪定位,该问题目前已得到有效解决,以下是解决思路: 一.问题现象 以SQL02为例,发现本来10秒一 ...
- 阿里云HBase携X-Pack再进化,重新赋能轻量级大数据平台
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
随机推荐
- API网关:开源Apinto网关-上游服务篇(二)
功能介绍 服务发现是一种分布式系统中的关键技术,它能够帮助应用程序动态地发现和访问依赖的服务实例,解决了服务实例分布在不同节点上的问题.通过服务发现,应用程序可以快速找到需要调用的服务实例的位置和元数 ...
- error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file o
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file o ...
- pytest—添加日志
开头 保存工作中常用的日志. pytest有自己的日志管理的开关,不需要用到python的日志库 开始 在文件根目录下新建一个pytest.ini文件 基本设置 [pytest] log_cli=tr ...
- 🚀 jdbc-plus是一款基于JdbcTemplate增强工具包, 已实现分页、多租户、动态表名等插件,可与mybatis、mybatis-plus等混合使用
jdbc-plus简介 jdbc-plus是一款基于JdbcTemplate增强工具包, 基于JdbcTemplate已实现分页.多租户.动态表名等插件,可自定义扩展插件,可与mybatis.myba ...
- 2022-11-18:给定一个数组arr,表示连续n天的股价,数组下标表示第几天 指标X:任意两天的股价之和 - 此两天间隔的天数 比如 第3天,价格是10 第9天,价格是30 那么第3天和第9天的指
2022-11-18:给定一个数组arr,表示连续n天的股价,数组下标表示第几天 指标X:任意两天的股价之和 - 此两天间隔的天数 比如 第3天,价格是10 第9天,价格是30 那么第3天和第9天的指 ...
- Maven安装、阿里云镜像配置、Idea中创建Maven项目、Tomcat的部署
我为什么要学这个技术? 为了更快创建web开发项目和jar包 在javaweb开发中,需要使用大量的jar包,我们手动去导入: 如何能够让一个东西自动帮我导入和配置这个jar包 因此,Maven诞生了 ...
- SpringMVC请求转发和重定向测试
保存视图解析器的请求转发和重定向测试 1.web.xml模板文件(略) 2.springmvc配置文件 <?xml version="1.0" encoding=" ...
- Mac常用文件解压命令
tar 解压:tar xvf fileName.tar 压缩:tar cvf fileName.tar directoryName rar 1.安装rar 下载RAR https://www.rarl ...
- shader编程经典:分形--科赫曲线
序言 科赫(雪花)曲线是一个经典分形图案,来一起领略下分形之美.本篇内容用到一些基础的内容,例如UV的理解和画线技巧,有需要的话可以参考合集的画圆和画线两篇文章. 示例 shadertoy 代码: # ...
- python mitmproxy抓包库
一.简介 mitmproxy是一款用Python编写的支持HTTP(S)的中间人代理工具.它可以拦截.查看.修改.重放和保存HTTP/HTTPS流量 ,支持命令行界面和图形界面,可用于安全测试.网络调 ...