美文网首页
第十章 计算层优化之系统优化

第十章 计算层优化之系统优化

作者: 被爱的天青色 | 来源:发表于2019-02-25 21:15 被阅读5次

在大数据离线计算平台上每天会有上万个任务在执行,对cpu、内存、存储资源由极大的消耗,那么如何降低资源使用率、提高计算效率,就涉及到计算优化的问题。从系统优化方面来讲:

HBO

1)HBO 是根据任务的历史执行情况优化资源分配

2)HBO方案提出:

① 在Hadoop中map task与reduce task的task个数分配是根据用户提交的任务总数据量和每个map task能处理的数据量决定的。

② 这种方式是一种平均的资源分配方法,但是仔细分析每一个map、reduce任务会发现它们处理的数据量会有很大差距,大部分的任务节点仅仅处理一小部分数据,而有些reduce节点处理的数据量又太多,从而导致整个任务的执行时间被拖慢,浪费了资源。总结成一句话:小数据量任务资源浪费、大数据量任务资源不足

③ 这些任务都是定时在是计算平台上执行的,由此想到了利用任务历史执行情况更合理的优化资源分配的方法

3)HBO 分配资源方法:

① 核心思想:基础资源评估+加权资源评估

② 基础资源评估:对于map任务的数量根据用户提交任务的数据量和每个map任务期望执行的数据量来估算;对于reduce任务个数由map任务的输入数据量估算或者根据近几天map任务对reduce任务的输出数据量的平均值进行估算

③ 加权资源评估:通过当前任务近期执行速度与任务预期执行速度作比较,如果小于预期则等比例添加资源,估算出最终的任务数量


CBO

1)基于代价的优化器,根据收集的信息选择代价最小的执行方式

2)CBO组成:

① Meta Manager:优化器在选择优化策略时会使用一些元数据,如数据表元数据,分区元数据,统计信息元数据等。

② Statistics:为优化器提供准确的统计信息,进行优化策略的选择

③ Rule Set:每一条优化规则都是特定场景下的优化点,优化器根据代价模型选择启用哪些规则。规则分为:

    + Substitute Rule:优化了一定好的规则

    + Explore Rule:优化后需要考虑各种因素的规则

    + Build Rule:优化后不能再次优化的规则

④ Volcano Planner Core:把所有信息统一处理,根据代价模型,涉及代价最小的方案

3)Volcano Planner Core:

① planner需要的数据有规则集、统计数据(每个节点元数据、RowCount值、Distinct值等)、代价模型(代价即各种资源,如IO开销、cpu等。根据不同的操作符计算不同的代价,然后选择代价最小的策略)

② Planner的输入是查询语句经过编译后生成的计划树

③ 规则匹配:Planner将计划树的每个节点进行注册,注册的同时会在规则集中匹配所有可以匹配的规则,所有与节点可以匹配到的规则加入到队列中

④ 规则应用:从队列中pop出一个匹配的规则进行优化,优化成功产生新的节点,重复之前的注册和匹配过程。Planner会对队列中所有规则进行优化,包括新产生的节点的规则

⑤ 代价计算:发生在产生的新节点注册阶段,计算规则如下:

    + 如果代价不存在或者子节点的代价还没计算,则忽略

    + 如果有代价,则将本身的代价和子节点的代价相加,若小于目前的最优策略,则认为当前节点是最优的。还会对其父节点的代价进行迭代计算,进而估算整条链路的代价

相关文章

  • 第十章 计算层优化之系统优化

    在大数据离线计算平台上每天会有上万个任务在执行,对cpu、内存、存储资源由极大的消耗,那么如何降低资源使用率、提高...

  • Centos7.2高并发优化记录

    系统层优化系统 socket 层优化echo 65535 > /proc/sys/net/core/somaxco...

  • 常见MYSQL调优策略

    调优层次:硬件层、磁盘IO、文件系统层、 硬件层 磁盘IO 文件系统层 内核参数优化 MYSQL参数优化建议

  • 十,MySQL优化

    1,优化风险 2,优化范围 3,优化效果及成本 4,优化工具介绍使用 系统层 top命令 iostat vmsta...

  • 第十章 计算层优化之数据倾斜

    在MapReduce执行的过程中,会把任务的原始数据分片到多个Task中执行。想象以下场景,当任务的多数Task都...

  • Day10-操作系统基础优化(2)

    课程知识介绍:系统基础优化部分 系统用户优化 系统命令提示符(shell) 系统安全优化 系统字符集优化 时间优化...

  • 公式化解决问题

    计算机性能优化有阿姆达尔法则,这个法则通过优化某部分的性能和这部分在整个系统中占用的时间来推算部分优化后对整个系统...

  • Android 性能优化指南

    一、布局优化 Android 系统对View的绘制是一层一层进行的,层数越多,绘制过程就会越复杂。所以布局优化的一...

  • Mysql调优——通过索引优化

    通过索引进行优化 优化小细节; 当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层。 #...

  • Python 性能优化

    循环的优化 有多重循环的尽量将内层的计算提到上一层。使用 xrange 比 range 节省大量的系统内存。可以不...

网友评论

      本文标题:第十章 计算层优化之系统优化

      本文链接:https://www.haomeiwen.com/subject/crfbyqtx.html