MaxCompute作为阿里巴巴的主力计算平台,在2018年的双11中,再次不负众望,经受住了双11期间海量数据和高并发量的考验。为集团的各条业务线提供了强劲的计算力,不愧是为阿里巴巴历年双11输送超级计算力的核武器。

本文为大家介绍,MaxCompute基于多集群部署的几万台服务器,如何为集团急剧增长的业务提供护航和保障。


挑战

每年的双11之前,也是MaxCompute各种乾坤大挪移落定的时候,因为双11就是各种大折腾项目的自然deadline。在今年双11之前,一路向北迁移和在离线混部项目,将杭州集群除蚂蚁外整体迁移到张北,涉及了绝大部分的业务project、数据存储和计算任务,为今年双十一大数据计算服务的保障带来了挑战。

体量

现在MaxCompute包括在离线混部集群在内有几万台服务器,数据总存储量在EB级,日均运行近几百万量级的作业,而每天所有作业处理的数据总量也在几百PB。集群分布三个地理区域,之间由长传链路相连接,由于集团数据业务固有的普遍联系特性,各个集群之间有着切不断的大量数据依赖,以及严重的带宽依赖。

成本

大量的服务器就是大量的成本,降低成本就要充分利用每个集群的计算存储能力,提高资源利用率。同时,不同业务有着不同的特征,有的存储多计算少,有的计算多存储少,有的大规模ETL I/O繁忙,有的机器学习科学计算CPU密集。

怎样充分利用每个集群的能力,提升CPU、内存、IO、存储各方面的利用率,同时均衡各集群负载,兼顾站点之间长传带宽的压力,在超高资源利用率下保障运行稳定,还要支持杭州整体搬迁这样量级的变更,这些挑战对于MaxCompute并不是应对双11大促的一次重大战役,而是MaxCompute每天的日常。

如何应对这些挑战,下面将从各个角度为大家介绍 MaxCompute 所做的一些列工作。

集群迁移

今年,一路向北迁移和在离线混部项目,将杭州集群迁移到张北,同时也涉及了MaxCompute控制集群和计算集群的迁移。 物理资源上的大腾挪,也给MaxCompute的服务保障带来了一些列问题和挑战。

透明的Project集群迁移

可能很多同学以前遇到过所在Project迁移集群时作业失败,出现 AllDenied 报错。之前在把Project迁到另一个集群的时候,会对用户有影响,操作前需要先做通知,对用户对运维同学都很困扰。
今年MaxCompute实现了迁移Project迁移过程中作业运行和提交都正常不受影响,做到了对用户透明。

轻量化迁移

集群之间因为业务的差异,会出现计算和存储配比不均衡的情况,而正常的迁移需要目标集群的存储和计算空间都满足需求才能做,这样就会遇到有的集群存储水位比较高,但计算能力还没用满,却没办法迁移大的Project过去的情况。

今年上线的轻量化迁移机制,可以实现只迁移计算和部分热数据到新的集群,而老数据则留在原集群,能够达到既均衡了计算资源,又不会有太多跨集群读写的效果。

搬走动不了的OTS

MaxCompute 使用OTS存储系统的各种核心元数据,所以一旦OTS异常,MaxCompute的整个服务都会受到影响。更严重的是,MaxCompute服务对OTS的依赖长期没有主备热切换的支持,使得OTS集群变成了MaxCompute唯一动不了的一个点。

今年作为一路向北迁移规划的一部分,我们仔细拟定和验证了OTS热切换方案,梳理了控制服务和OTS集群的依赖,目标不但是要做OTS的主备热切换,而且是从杭州直接切到张北。

尽管经历了一次弹内切换的失败,经过进一步优化和演练,最终我们把切换时间从预定的分钟级别切换缩短到了若干秒级的切换,并在公共云线上环境也成功实施,实际切换过程无异常反馈,做到了用户无感知。

从此MaxCompute服务里最关键的一个点有了无损热切换的能力,大大降低了整体服务的全局性风险。

跨集群调度

多样的全局作业调度机制

集群之间因为作业类型或业务特征等因素,可能会有各种计算资源使用的不充分,比如:业务的全天资源高峰时段及持续时间不同;申请大块资源的任务类型所在集群有空隙可以超卖小作业填充;甚至有些特殊情况会有临时的资源借用需求。

为此MaxCompute提供了一些全局作业调度机制,可以把指定的一批作业调度到指定的集群运行,或者在当前集群资源繁忙的时候,系统自动去看如果其它集群资源有空闲,就调度到空闲集群运行。

除了均衡资源利用率,这些机制也提供了人工调控的灵活性,并且还在进行与数据排布相结合的调度机制开发,以根据集群实时的状态进行调度。

拓扑感知、数据驱动的桥头堡

作业要访问其它集群的表数据有两个选择,一个是从本集群直接读远程集群(直读),一个是先把远程的数据复制一份到本集群(等复制)。这两种方式各有优缺点及其适用的场景。 同时,集群之间的网络拓扑(是异地长传还是同城同核心)也会影响直读和等复制策略的选择。异地长传带宽成本高,容量小,同城的网络带宽则相对容量较大,但在大数据的流量下,高峰期都是一样的可能拥堵,所以需要既利用同城带宽优势,又不能把瓶颈转移到同城,需要全局的策略调配。

因为每天业务都在变化,数据的依赖关系也在变化,我们利用对历史任务的分析数据持续优化和更新复制策略,在每个区域选择桥头堡集群接收长传的复制,然后在区域内实施链式复制或者近距离直读。 通过桥头堡2.0项目,我们实现了将2个地域间的数据复制流量降低了30%+。

新机型的新问题

一朝天子一朝臣,一代机型一代瓶颈。

现在MaxCompute的集群规模仍然是万台标准,但今天的万台已经不是几年前的万台,单机的CPU核数从曾经的24核、32核,再到新集群的96核,一台顶过去3台。但不管单机多少核,在MaxCompute的集群里,每天CPU总是能持续几个小时满负荷运行,总体日均CPU利用率达到65%。

不变的除了CPU利用率,还有磁盘数,我们的数据IO能力仍然是由不变的单机机械硬盘提供。虽然硬盘充起了氦气,单盘容量是以前的3倍,但单盘的IOPS能力却相差无几,DiskUtil就变成了非常大的瓶颈。

经过一系列的优化措施,今年大量96核集群的上线没有了去年面对64核时的狼狈不堪,把DiskUtil维持在了比较可控的水平。

透明的文件合并

跑作业时遇到报错FILE_NOT_FOUND重跑又能过,或者扫描长时间分区范围的作业反复重跑也没法跑过,这个情况相信很多人都遇到过。

为了缓解集群文件数的压力,平台的后台自动文件合并停一两天都有触顶的危险,但长期以来这个动作为了保证数据一致性和效率,都没法避免打断正在读的作业,只能选择只合并比较冷的分区,但一方面文件数的压力迫使把冷的判定阈值从一个月压缩到两周到更短,另一方面总会有不少作业仍然会去读早些时间的分区而被合并操作打断。

今年平台实现了新的合并机制,会给已经在运行的作业留一定的时间仍能读合并之前的文件,从而不再受影响,可以很大程度上解决这个顽固问题。

目前新的机制在公共云取得了很好的效果,集团内也在灰度试运行中。

平台性能提升

作为一个计算平台,MaxCompute以计算力为核心指标,通过不断的提升计算力,支撑起集团飞速的业务增长。 对比2017双十一,今年双十一当天MaxCompute作业数几乎有了成倍的增长。 过去一年中,MaxCompute通过在NewSQL+富结构化+联合计算平台+AliORC多个方向上发力,持续构建高可用、高性能、高自适性的大数据平台,提升平台计算力。 9月云栖大会发布中,TPC-BB的测评结果在10TB规模上超越开源系统3倍以上;100TB规模评分从去年的7800+提升到18000+,世界领先。

总结

MaxCompute 在2018双十一又一次平滑通过了大促的考验,同时我们也看到, 平台需要不断提升分布式计算下多集群的综合能力,不断提升计算力,保障大规模计算下的稳定性,来支撑起持续高速增长的业务。 通过持续的引擎能力优化、开发框架建设、智能数仓建设等维度,MaxCompute 向智能化的、开放的、生态平台发展,来支撑起下一个100%业务增长。

阅读原文​​​​​​​

更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击的更多相关文章

  1. 揭秘阿里云EB级大数据计算引擎MaxCompute

    日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...

  2. Impala简介PB级大数据实时查询分析引擎

    1.Impala简介 • Cloudera公司推出,提供对HDFS.Hbase数据的高性能.低延迟的交互式SQL查询功能. • 基于Hive使用内存计算,兼顾数据仓库.具有实时.批处理.多并发等优点 ...

  3. [NewLife.XCode]分表分库(百亿级大数据存储)

    NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...

  4. 阿里巴巴年薪800k大数据全栈工程师成长记

    大数据全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Stack (需fanqiang).他把全栈工程师定义为对性能影响有着深入理解的技术通才.自那以后 ...

  5. 《阿里如何实现秒级百万TPS?搜索离线大数据平台大数据平台架构解读》读后感

    在使用淘宝时发现搜索框很神奇,它可以将将我们想要的商品全部查询出来,但是我们并感觉不到数据库查询的过程,速度很快.通过阅读这篇文章让我知道了搜索框背后包含着很多技术,对我以后的学习可能很有借鉴. 平时 ...

  6. SQL Server百万级大数据量删除

    删除一个表中的部分数据,数据量百万级. 一般delete from 表 delete from 表名 where 条件: 此操作可能导致,删除操作执行的时间长:日志文件急速增长: 针对此情况处理 de ...

  7. 《阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读》--阅读

    离线?在阿里搜索工程体系中我们把搜索引擎.在线算分.SearchPlanner等ms级响应用户请求的服务称之为“在线”服务:与之相对应的,将各种来源数据转换处理后送入搜索引擎等“在线”服务的系统统称为 ...

  8. 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    转自http://blog.163.com/zhangjie_0303/blog/static/9908270620146951355834/ 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 w ...

  9. (转)提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

随机推荐

  1. Eu

    <parent> <artifactId>microservice-cloud-01</artifactId>   <groupId>com.mengx ...

  2. UVa 699 The Falling Leaves (树水题)

    Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on ...

  3. 【Flutter学习】可滚动组件之ScrollView

    一,概述 ScrollView 是一个带有滚动的视图组件. 二,组成部分 ScrollView 由三部分组成: Scrollable - 它监听各种用户手势并实现滚动的交互设计.可滚动Widget都直 ...

  4. Database基础(四):密码恢复及设置、 用户授权及撤销、数据备份与恢复、MySQL管理工具

    一.密码恢复及设置 目标: 本案例要求熟悉MySQL管理密码的控制,完成以下任务操作: 练习重置MySQL管理密码的操作 通过正常途径设置MySQL数据库的管理密码 步骤: 步骤一:重置MySQL管理 ...

  5. BZOJ 3569: DZY Loves Chinese II(线性基)

    传送门 解题思路 首先构造出一个生成树,考虑不连接的情况.假设连通两点的非树边和树边都断掉后不连通,那么可以给所有的非树边随机一个互不相同的值,然后树边的权值为过他两端点的非树边权值的异或和,这个可以 ...

  6. Docker Machine 管理-创建machine(16)

    对于 Docker Machine 来说,术语 Machine 就是运行 docker daemon 的主机.“创建 Machine” 指的就是在 host 上安装和部署 docker.先执行 doc ...

  7. MySQL-视图上进行增删改查

    https://dev.mysql.com/doc/refman/5.7/en/view-updatability.html https://dev.mysql.com/doc/refman/8.0/ ...

  8. [bzoj4589]Hard Nim(FWT快速沃尔什变化+快速幂)

    题面:https://www.lydsy.com/JudgeOnline/problem.php?id=4589 题意 求选恰好n个数,满足每个数都是不大于m的质数,且它们的异或和为0的方案数. 解法 ...

  9. 第一周复习一 ( HTML表单form)

    form <from id="" name="" method="post/get" action="">& ...

  10. 使用yarn搭建vue项目

    今天尝试了一下用yarn的方式搭建vue项目,方法其实是和npm的用法一样.但是在创建过程中报错了.现在整理一下,便于后期查错时使用. 以windows系统为例 1.全局安装yarn,三种方式 官网上 ...