zoukankan      html  css  js  c++  java
  • spark性能参数的了解

    yarn.scheduler.maximum-allocation-mb

    这个参数表示每个container能够申请到的最大内存,一般是集群统一配置。Spark中的executor进程是跑在container中,所以container的最大内存会直接影响到executor的最大可用内存
    当你设置executor的内存过大的时候,日志钟会爆这个错
     

     从图中可以看出,本集群最大的就是10240,超过这个值就会报错

    1.2 spark.yarn.executor.memoryOverhead

    executor执行的时候,用的内存可能会超过executor-memoy,所以会为executor额外预留一部分内存。spark.yarn.executor.memoryOverhead代表了这部分内存。这个参数如果没有设置,会有一个自动计算公式(位于ClientArguments.scala中),代码如下:

    其中,MEMORY_OVERHEAD_FACTOR默认为0.1,executorMemory为设置的executor-memory, MEMORY_OVERHEAD_MIN默认为384m。参数MEMORY_OVERHEAD_FACTOR和MEMORY_OVERHEAD_MIN一般不能直接修改,是Spark代码中直接写死的
    也就是说 即使我们不设置spark.yarn.executor.memoryOverhead的数值,spark回自动设置为你的executormemory*0.1,如果executormemory*0.1<384m,那么就默认384m,

    2、executor-memory计算

    executor-memory的是由两部份组成的,一部份是executor-memoy 另一部分是executorMemoryOverhead(yarn.scheduler.maximum-allocation-mb=10240m

    那么根据以上信息,我们能设置的executor-memoy最大值是多少呢?

    设executor-memoy=x

    executorMem=x+overheadmemory
    overheadmemory=Max(x*0.1,384)
    executorMem<yarn.scheduler.maximum-allocation-mb=10240m
    x+Max(x*0.1,384)<10240m
    x+0.1x=10240
    x=9309.09
    x=9310(向上取整)
     
  • 相关阅读:
    浅谈React数据流管理
    Nodejs相关知识
    React其它相关知识点
    React-Native知识点相关
    React状态管理相关
    React设计模式相关
    Node.js调试相关
    Event loop详解(包含Node端)
    JS this详解
    Babel知识点相关
  • 原文地址:https://www.cnblogs.com/xuziyu/p/15038318.html
Copyright © 2011-2022 走看看