读懂这本书,才算读懂阿里大数据

  • 时间:
  • 浏览:0
  • 来源:uu快3开奖历史_uu快3玩法_注册

在高负载的集群,若高优先级作业无法及时拿到资源,传统的做法是通过抢占,直接杀掉低优先级作业,而且将资源分配给高优先级作业,许多“暴力”抢占有资源快速腾挪的特点,但抢占“杀人”也会意味着用户作业中途被杀,计算资源浪费的缺点。交互式抢占是所处明确资源从低优先级流向高优先级的前提下,不立即杀掉低优先级作业,而且通过协议,让低优先级作业尽快在可接受的时间内(目前是90s)快速跑完,既不浪费集群的计算资源,同时也保障了高优先级作业的资源供给。

从下面几张图中可不还里能看后,在基线时间段(00:00 ~ 09:00), 基线作业超时拿可不还里能了资源发起交互式抢占revoke的频率明显高于许多二十四时 , 这意味着着通过交互式抢占加速的手段基线作业可不还里能顺利拿到所需资源。双十一期间的线上运行情况,也证明了 在资源压力大的情况下,高优先级基线作业明显通过了交互式抢占revoke获得了资源。

宽度剖析淘宝、高德、友盟+、1688、优酷、阿里妈妈、阿里影业大数据实战场景,2020不容错过的企业大数据实战手册现在可不还里能免费下载阅读啦。

FuxiMaster是fuxi的资源调度器,负责将计算资源分配给不同的计算任务。针对MaxComput超大规模计算场景下,不同应用间多样的资源需求,过去几年资源调度团队对的核心调度逻辑做了极致的性能优化,调度延时控制在了10微秒级别,集群资源的高效流转为MaxComputer历年双十一大促的稳定运行提供了强有力的保障。

福利来了!!!

双十一前在集团结构做了灰度上线,线上日均生效的conditionl节点116万+,其中应用Map join的节点占比超过了90%,0 OOM所处。推广的过程中亲戚亲戚我们都都也收到了各个BU多个用户的真实反馈,使用conditional join后,肯可不还里能选取 最优的执行计划,多个场景上作业的运行时间,都从十几条 小时降低到了500分钟以下。

基于DAG 2.0的动态逻辑图执行能力,MaxCompute支持了开发的conditional join功能:在对于join使用的算法无法被就让选取 时,允许优化器提供有有一十个 多conditional DAG,而且的DAG同时包括使用某种不同join的办法对应的不同执行计划支路。在实际执行时,AM根据上游产出数据量,动态选取 一根支路执行(plan A or plan B)。而且子的动态逻辑图执行流程,也能保证每次作业运行时都能根据实际作业数据特性,选取 最优的执行计划,详见下图:

伏羲(Fuxi)是十年前创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 MaxCompute(结构代号ODPS),分布式调度 Fuxi),当时的设计初衷是为了除理大规模分布式资源的调度什么的问题(本质上是多目标的最优匹配什么的问题)。目前Fuxi 2.0是MaxCompute内置的调度系统。

随着业务和数据的持续高速增长,MaxCompute 双十一的作业量和计算数据量每年的增速都保持在500%以上 。

随着阿里经济体和阿里云业务需求(尤其是双十一)的不断雄厚,伏羲的内涵而且断扩大,从单一的资源调度器(对标开源系统的YARN)扩展成大数据的核心调度服务,覆盖数据调度(Data Placement)、资源调度(Resouce Management)、计算调度(Application Manager)、和本地微(自治)调度等多个领域,并在每有有一十个 多细分领域致力于打造超越业界主流的差异化能力。

后边性能数据统计是基于全量高优先级作业的有有一十个 多平均结果,实际上SLX在太少太少太少太少有大规模数据场景下效果更加显著,比如在线下tpch和tpcds 10TB测试集资源非常紧张的场景下,SQL e2e运行效率提升近一倍,Shuffle模块提升达2倍。

正是什么超预期优化效果,MaxCompaute 双十一当天近千万作业,涉及到近116万台服务器节省了近20%左右的算力,而且针对各种极端场景也能智能化匹配最优除理模式,做到完整掌控未来数据量不断增长的超大规模作业的稳定产出。

2019双十一期间,面对远超以往的数据量,所有的高优先级作业顺利按期产出,资源调度方面顺利保障了基线资源供给,其丝般顺滑程度让整个基线保障的过程几乎感受可不还里能了资源调度的所处。其中基线作业交互式抢占以及加速功能提供了有效的资源保障能力,及时、有效的抢占到所需资源。下文给出了某个云上集群的资源供给情况。

★  交互式抢占加速为基线作业快速提供可用资源

能取得上述线上结果,和DAG2.0众多的技术创新密不可分,受篇幅限制,这里主要选取 和双11运行稳定性相关的有有一十个 多方面做重点介绍。

★  DAG 2.0 展望

其中Conditional Join一方面保证了优化的执行计划能尽肯能的被选取 ,同时也保证了不必肯能错误选取 而带来OOM意味着作业失败,通过运行时数据统计来动态决定有无使用Mapjoin,保证更加准确决策。

出于对上线节奏把控的考虑,双十一期间conditional join尚未覆盖高优先级作业。双十一期间,亲戚亲戚我们都都也看后了重要基线上肯能数据膨胀意味着Mapjoin hint失效,作业OOM也能 临时调参;以及肯能Mapjoin未能被正确选中,而意味着作业未能选中优化执行计划而延迟完成的情况。在conditional join在重要基线上线后,也能有效的除理许多情况,让基线的产出更加流畅。

原文发布时间:2020-01-02

作者:喻奎 、汤志鹏 、CHEN, Yingda、王家忙、冯亦挥、王璀

本文来自阿里云商务公司合作 伙伴“阿里技术”,了解相关信息可不还里能关注“阿里技术”。

★ Shuffle Service 

在双十一值班的过程中,亲戚亲戚我们都都依然看后了大促场景下肯能不同的数据分布特点,数据的倾斜/膨胀对于分布式作业整体的完成时间影响非常大。而什么什么的问题在DAG 2.0完备的动态图调度和运行能力上,都能得到较好的除理,相关功能正在排期上线中。

自己面,在有有一十个 多DAG上,当下游读取数据失败时,也能 触发上游的重跑,而在所处严重机器什么的问题时,多个任务的链式重跑,会造成作业的长时间延迟,对于基线作业的及时产出造成严重影响。DAG2.0上实现了一套基于血缘回溯的主动容错策略(如下图),而且的智能血缘回溯,也能除理了层层试探,层层重跑,在集群压力较大时,也能有效的节约运行时间,除理资源浪费。

SQL中许多耗时算子的分布式实现基本都也能 用到许多模块,比如join,groupby,window等等,而且它绝对是CPU,memory,IO等资源的消耗大户,在大次要作业中运行时间占比整个sql运行时间500%以上,许多大规模作业甚至可不还里能达到500%以上,这对于MaxCompute SQL日均近千万任务量,日均除理数据接近EB级的服务来说,性能每提升有有一十个 多多百分点,节省的机器资源完整后该以上千台计,而且对该组件的持续重构优化老而且MaxCompute SQL团队性能提升指标的重中之重。今年双十一应用的SLX而且完整重写的高性能Streamline架构。

双十一作为阿里集团所有技术线的大考,对于DAG2.0许多全新的组件,同样是有有一十个 多重要的考验,也是DAG2线上升级的有有一十个 多重要的里程碑:

Shuffle Service放弃了以磁盘文件为基础的主流shuffle文件存储办法,突破了机械硬盘上文件随机读的性能和稳定性短板;基于shuffle数据动态调度的思想,令shuffle流程成为了作业运行时实时优化的数据流向、排布和读取的动态决策。对准实时作业,通过解构DAG上下游调度相比network shuffle性能相当,资源消耗降低500%+。

Shuffle Service 主要功能有:

今年双11,阿里巴巴MaxCompute大数据云数仓服务,单日数据吞吐量接近EB级别,任务数达到千万级,而亲戚亲戚我们都都所有重保高优先级任务,却都做到了按时产出;同时,亲戚亲戚我们都都还通过在离线混部,承载了交易系统的65%的峰值交易。这很大程度上,得益于全新亮相的MaxCompute调度系统Fuxi2.0。分布式大数据除理,最大的什么的问题之一是,怎么还里能在数万节点间有效交换,传输海量的数据,确保内存、磁盘、网络硬件的最高效使用,但又不必肯能硬件高负载而冒出软硬件故障,意味着无效运行。而且什么的问题是,数据在真正被计算除理前,亲戚亲戚我们都都何必 知道真实的数据分布情况,意味着静态生成的执行计划很糟糕,亲戚亲戚我们都都也能 动态根据实时输入、或后边生成的数据,调整执行计划,方能最优。而这正是本文要除理的双11大数据除理的什么的问题之二。本文干货满满,希望能对亲戚亲戚我们都都的大数据除理帮助一二。

★ StreamlineX+Shuffle Service 展望

★ Streamline

SLX逻辑功能架构如图所示,主要涵盖了SQL runtime层面的数据除理逻辑重构优化,包括优化数据除理模式,算法性能提升,内存分配管理优化,挖掘硬件性能等各方面来提升计算性能,而且底座结合了全新设计的负责数据传输的Fuxi ShuffleService服务来优化IO读写以及Worker容错性等方面,让SLX在各种数据模式以及数据规模下都也能有很好的性能提升和高效稳定的运行。

高性能SLX框架经过今年双十一大考觉完整后该有有一十个 多就让就让开始了了,而且有有一十个 多就让就让刚开始了了,后续亲戚亲戚我们都都后该不断的完善功能,打磨性能。比如持续引入高效的排序,编码,压缩等算法来Adaptive匹配各种数据Parttern,根据不同数据规模结合ShuffleService智能选取 高效数据读写和传输模式,RangePartition优化,内存精准控制,热点模块宽度挖掘硬件性能等各方向持续发力,不断节省公司成本,技术上保持大幅领先业界产品。

SQL Runtime SLX主要涵盖Writer和Reader两次要,下面简要介绍其中次要优化设计:

下边为主要十几条 集群SU拿资源的时间分布 (fuxi基本调度单元), 可不还里能发现这十几条 集群90%分位拿资源的时间基本完整后该1分钟左右(符合线上基线作业等待歌曲资源达到90s进行抢占配置预期)。

2019双十一,MaxCompute 日计算数据量规模已接近EB级,作业量也到了千万量级,在那么大规模和资源紧张的情况下,要确保双十一稳定运行,所有重要基线作业按时产出压力相当之大。

至双十一前,日均95%以上弹内SQL作业完整采用SLX,90%以上的Shuffle流量来自SLX,0故障,0回退的完成了用户透明无感知的热升级,在保证平稳上线的基础上,SLX在性能和稳定性上超预期提升效果在双十一当天得到充分体现,基于线上全量高优先级基线作业进行统计分析:

Map join优化能少量减少额外shuffle和排序开销并除理shuffle过程中肯能冒出的数据倾斜,提升作业运行性能。而且其局限性也同样显著:肯能小表无法fit进单机内存,那么在试图建立内存中的hash表时就会肯能OOM而意味着整个分布式作业的失败。太少太少太少太少有随便说说map join在正确使用时,可不还里能带来较大的性能提升,但实际上优化器在产生map join的plan时也能 偏保守,意味着错失了太少太少太少太少有优化肯能。而即便是那么,依然那么办法完整除理map join OOM的什么的问题。

现代分布式系统作业执行流程,通常通过有有一十个 多有向无环图(DAG)来描述。DAG调度引擎,是分布式系统中唯一也能 和几乎所有上下游(资源管理,机器管理,计算引擎, shuffle组件等等)交互的组件,在分布式系统中起了重要的协调管理,承上启下作用。作为计算平台各种上层计算引擎(MaxCompute, PAI等)的底座,伏羲的DAG组件在过去十年支撑了上层业务每天数百万的分布式作业运行,以及数百PB的数据除理。而在计算引擎某种能力不断增强,作业种类复杂的背景下,对DAG架构的动态性,灵活性,稳定性等多个方面都提出了更高的需求。在许多背景下,伏羲团队启动了DAG 2.0架构升级。引入了有有一十个 多,在代码和功能层面,均是全新的DAG引擎,来更好的支持计算平台下个十年的发展。

在许多OLAP或MPP系统中,完整后该累似 组件被称为Shuffle或Exchange,在MaxCompute SQL中该组件涉及的功能更加完善,性能更优,主要涵盖但不限于分布式运行的Task之间数据序列化,压缩,读写传输,分组合并,排序等操作。

Shuffle Service彻底除理了以上什么的问题。经过此次双11的考验,结果显示线上集群的压力瓶颈肯能从就让的磁盘,转移到CPU资源上。双十一当天基线作业执行顺畅,集群整体运行持续保持稳定。

过去十年来,伏羲在技术能力上每年完整后该新的进展和突破,2013年5K,2015年Sortbenchmark世界冠军,2017年超大规模离在/在离线混部能力,2019年的 Yugong 发布而且论文被VLDB2019接受等。

今年双十一,适逢计算平台的核心调度执行框架全新架构升级- DAG 2.0正在全面推进上线,DAG 2.0 很好的除理了上述十几条 挑战。

★ StreamlineX (SLX) 架构与优化设计

许多全新的架构,赋予了DAG更敏捷的调度执行能力,并在分布式作业执行的动态性,灵活性等方面带来了质的提升,在与上层计算引擎紧密结合后,能提供更准确的动态执行计划调整能力,从而为支持各种大规模作业提供了更好的保障。累似 在最简单的MR作业测试中,DAG 2.0调度系统某种的敏捷度和整个除理流程中的全面去阻塞能力, 能为大规模的MR作业(116万并发)带来将近500%的性能提升。而在更接近线上SQL workload特点的中型(1TB TPCDS)作业中,调度能力的提升能带来20%+的e2e时间缩短。

★ 基线作业的SU拿资源时间比例分布

有有一十个 多典型的例子是dynamic partition insert的场景,在某个高优先级作业的场景上,一张重要的业务表直接采用动态分区的办法导入数据意味着表文件数太少,后续基线频繁访问该表读取数据意味着pangu master持续被打爆,集群所处不可用情况。采用DAG2.0的Adaptive Shuffle功能就让,线下验证作业运行时间由500+小时降低到小于500分钟,而产生的文件数相比于关闭reshuffle的办法降低了有有一十个 多数量级,在保障业务数据及时产出的前提下,能极大缓解pangu master的压力。动态分区场景在弹内生产和公共云生产完整后该广阔的应用场景,随着Adaptive Shuffle的上线,dynamic insert将是第有有一十个 多除理的比较彻底的数据倾斜场景。

分布式SQL中,map join是有有一十个 多比较常见的优化,随便说说现原理对小表除理shuffle,而且直接将其全量数据broadcast到每个除理大表的分布式计算节点上,通过在内存中直接建立hash表,完成join操作。

DAG 2.0的分派中结合了过去10年支持集团内外各种计算任务的经验,系统的对实时机器管理框架,backup instance策略以及容错机制等方面进行了考虑和设计,为支持线上多种多样的实际集群环境打下了重要基础。而另一挑战是,2.0架构要在日常数百万分布式作业的体量上做到完整的上线,在飞行中换引擎。从FY20财年初就让就让刚开始了了,DAG2.0推进线上升级,至今肯能实现了在MaxCompute离线作业,PAI平台Tensorflow CPU/GPU作业等每天数百万作业的完整覆盖。并经过项目组所有成员的同时努力,在双十一当天交出了一份满意的答卷。

伏羲(Fuxi)是十年前创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 ODPS,分布式调度 Fuxi),当时的设计初衷是为了除理大规模分布式资源的调度什么的问题(本质上是多目标的最优匹配什么的问题)。

目前弹内线上针对高优先级SU(schedule unit,是资源管理的基本单位)开启组内交互式抢占,在大多情况下可不还里能保障基线作业的资源供给。然而,目前即使通过交互式抢占也后该所处许多作业无法及时获得资源的情况。累似 ,高优先级交互式抢占每隔500s的触发除理高优先的SU数量受全局配置约束,而该段时间还所处少量许多早肯能提交进来的高优先级SU,会意味着该作业的SU被轮空。另外,交互式抢占指令发出后,也能 对应instance就让就让开始了了后定向还这份资源,而对应的instance的运行时间都非常长,意味着交互式无法及时拿回对应的资源。基于上述什么的问题,亲戚亲戚我们都都进一步优化了交互式抢占策略。交互式抢占关键技术针对前文提到的十几条 什么的问题,交互式抢占做了如下优化:

★  完善的错误除理能力

而其中高先级基线作业的按时完成是双十一大促成功的重要标志,也是资源保障中的重中之重。除了空闲资源的优先分配,还也能 对低优先级作业占用的资源进行腾挪,在不影响集群整体利用率的前提下,快速地将资源分配给高优先级基线作业。

2019年,是阿里巴巴第1有有一十个 多双11。众所周知,阿里的电商在线体系经太少年发展,可不还里能支持峰值超过每秒500几万笔交易。但鲜另一个人知的是,海量的交易,创造了海量的数据,爆炸性的数据量激增,给狂欢就让的大数据除理,带来了大什么的问题。

为了应对后边挑战,突破现有资源瓶颈,一年多前MaxCompute SQL就启动性能持续极限优化项目,其中最关键之一而且StreamlineX (SLX)项目,它完整重构了现有的Streamline框架,从合理设计高扩展性架构,数据除理模式智能化匹配,内存动态分配和性能优化,Adaptive算法匹配,CPU Cache访问友好特性设计,基于 Fuxi Shuffle Service 服务优化数据读写IO和传输等各方面进行重构优化升级后的高性能框架。

如上图所示,DAG2将机器分为多个情况。并根据一系列不同的指标来触发在不同情况之间的转换。对于不同情况的机器,根据其健康程度,进行主动规避,计算任务迁移,以及计算任务主动重跑等操作。将机器什么的问题造成的作业运行时间拉长,甚至作业失败的肯能性降到最低。

在MaxCompute SQL中,它主要用于管理全集群所有作业Streamline数据的底层传输办法和物理分布。调度到不同机器上成千上万的Worker也能 通过精准的数据传递,也能商务公司合作 完成整体的任务。在服务MaxCompute而且的数据大户时,可不还里能高效、稳定地完成每天116万台机器上千万量级worker间传输几百PB数据量的数据shuffle工作,很大意义上决定了集群整体的性能和资源利用效率。

★ 灵活的动态逻辑图执行策略:Conditional join

此外,DAG2.0也持续探索许多数据倾斜(data skew)的除理,累似 join skew等,相信随着在2.0上更多优化功能的开发,亲戚亲戚我们都都的执行引擎能做到更动态,更智能化,包括数据倾斜什么的问题在内的一众线上痛点什么的问题,将可不还里能得到更好的除理。今天最好的表现,是明天最低的要求。亲戚亲戚我们都都相信明年的双十一,在面对更大的数据除理量时,计算平台的双十一保障也能更加的自动化,通过分布式作业运行中的动态化调整,在更少人工干预的前提下完成。

除了基础提升调度能力提升带来的性能红利外,DAG2在动态图亮点功能上也完成了新的突破。包括增强Dynamic Parrellism, LIMIT优化, Conditional Join等动态图功能完成上线肯能正在上线推动中。

根据以往双十一的经验,11月12日夜晚基线任务数据量大幅增加,shuffle过程会受到巨大的挑战,这通常也是造成当天基线延迟的主要意味着,下面列出了传统磁盘shuffle的主要什么的问题:

双十一大促场景下,除了数据洪峰和超过日常作业的规模,数据的分布与特点也与平常大不相同。许多特殊的场景对分布式作业的调度执行框架提出了多重挑战,包括:

后边提到今年双十一数据量翻倍接近EB级,作业量接近千万,整体资源使用也比较紧张,通过以往经验分析,双十一影响最关键的模块而且Streamline (在许多数据除理引擎也被称为Shuffle或Exchange),各种极端场景层出不穷,并发度超过116万以上的Task,多达几亿条的热点Key,单Worker数据膨胀上千倍等全方位覆盖的超压力数据场景,都将极大影响Streamline模块的稳定运行,从而对集群磁盘IO的稳定性,数据文件读写性能,机器资源竞抢性能,长尾Worker PVC(Pipe Version Control,提供了许多特定情况下作业失败重跑的机制)重跑等各方面产生影响,任何有有一十个 多情况那么得到及时的自动化除理,完整后该肯能意味着基线作业破线引发故障。

为了应对上述挑战,与往年相比,除了常规的HBO等调整之外,飞天大数据平台加速了过去1-2年中技术积累成果的上线,尤其是 Fuxi 2.0 首次亮相双十一,最终在单日任务量近千万、单日计算量近千PB的压力下,保障了基线完整按时产出。

在分布式环境中肯能机器数量巨大,单机所处故障的概率非常高,而且容错能力是调度系统的有有一十个 多重也能力。为了更好的管理机器情况,提前发现故障机器并进行主动归并,DAG2通过完整的机器情况管理,完善了机器错误的除理能力:

在双十一独特的大促场景下,2019双11的挑战主要来自以下十几条 方面:

随着 Fuxi 2.0 首次亮相2019双11,今年飞天大数据平台在混部侧支持和基线(也能 重保的高优先级作业)保障有有一十个 多方面均顺利完成了目标。其中,混部支持了双十一 500%在线交易洪峰的流量,超大规模混部调度符合预期。在基线保障方面,单日数据除理 970PB,较去年增长超过500%。在千万级别的作业上,不也能 用户额外调优,基本做到了无人工干预的系统自动化。