大数据之路、阿里巴巴大数据实践读书笔记 --- 第十三章、计算管理

  • 目前内部MaxCompute集群上有200多万个任务,每天存储资源、计算资源消耗都很大。如何降低资源的消耗,提高任务执行的性能,提升任务产出时间,是计算平台和ETL开发工程师孜孜追求的目标;

一、系统优化

  • Hadoop等分布式计算系统评估资源的方式,一般是根据输入数据量静态评估,Map任务用于处理输入,对于普通的Map任务,评估一般符合预期;

  • 而对于Reduce任务,其输入来自于Map的输出,到那时一般只能根据Map任务的输入进行评估,经常和实际需要的资源数相差很大,所以在任务稳定的情况下,可以考虑给予任务的历史执行情况进行资源评估,即采用HBO(History-Based Optimizer,基于历史的优化器);

  • 提到CBO(Cost-Based Optimizer,基于代价的优化器),首先会想到Oracle的CBO。Oracle会收到的表、分区、索引等统计信息来计算每种执行方式的代价(Cost),进而选择其中最优的执行方式;

  • HBO

    • HBO是根据任务历史执行情况为任务分配更合理的资源,包括内存、CPU以及Instance个数。

    • HBO是对集群资源分配的一种优化,概括起来就是:任务执行历史 + 集群状态信息 + 优化规则 -> 更优的执行配置;

    • 1.背景

      • MaxCompute原资源分配策略

        • 在默认的实例算法下,小任务存在浪费资源,而大任务却资源不足;

      • HBO的提出

        • 通过数据分析,发现在系统中存在大量的周期性调度的脚本(物理计划稳定),且这些脚本的输入

猜你喜欢

转载自blog.csdn.net/u012965373/article/details/105478292