美文网首页
spark动态资源分配

spark动态资源分配

作者: 尼小摩 | 来源:发表于2018-06-11 11:08 被阅读73次

    spark动态资源分配默认是不开启的,并且只要设置了num-executors设置了作业的executor数,就不再有效;
    http://spark.apache.org/docs/latest/configuration.html#dynamic-allocation
    作业中设置,需要在conf中加入以下配置项:

    spark.dynamicAllocation.enabled false 是否要开启DRA功能,要开启则设置为true,设置为true需要将spark.shuffle.service.enabled
    设置为true;
    spark.dynamicAllocation.executorIdleTimeout 60s executor空闲多长时间就被移除释放
    spark.dynamicAllocation.cachedExecutorIdleTimeout infinity 这个要考虑cache数据的时候,有cache数据要空闲多长时间才能移除;默认无限,首先保证cache的数据后面操作需要的时候是不能移除的,这个要注意;
    spark.dynamicAllocation.initialExecutors spark.dynamicAllocation.minExecutors 初始化的executor数
    spark.dynamicAllocation.maxExecutors infinity 动态的时候最多executor数
    spark.dynamicAllocation.minExecutors 0 动态的时候最少executor数
    spark.dynamicAllocation.schedulerBacklogTimeout 1s 表示积压多久任务的时候要新申请executor
    spark.dynamicAllocation.sustainedSchedulerBacklogTimeout schedulerBacklogTimeout

    例如:

    spark.shuffle.service.enabled true //启用External shuffle Service服务
    spark.shuffle.service.port 7337 //Shuffle Service服务端口,必须和yarn-site中的一致
    spark.dynamicAllocation.enabled true //开启动态资源分配
    spark.dynamicAllocation.minExecutors 1 //每个Application最小分配的executor数
    spark.dynamicAllocation.maxExecutors 30 //每个Application最大并发分配的executor数
    spark.dynamicAllocation.schedulerBacklogTimeout 1s
    spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 5s

    动态资源分配策略:

    开启动态分配策略后,application会在task因没有足够资源被挂起的时候去动态申请资源,这种情况意味着该application现有的executor无法满足所有task并行运行。spark一轮一轮的申请资源,当有task挂起或等待spark.dynamicAllocation.schedulerBacklogTimeout(默认1s)时间的时候,会开始动态资源分配;之后会每隔spark.dynamicAllocation.sustainedSchedulerBacklogTimeout(默认1s)时间申请一次,直到申请到足够的资源。每次申请的资源量是指数增长的,即1,2,4,8等。

    之所以采用指数增长,出于两方面考虑:其一,开始申请的少是考虑到可能application会马上得到满足;其次要成倍增加,是为了防止application需要很多资源,而该方式可以在很少次数的申请之后得到满足。

    资源回收策略

    当application的executor空闲时间超过spark.dynamicAllocation.executorIdleTimeout(默认60s)后,就会被回收。

    相关文章

      网友评论

          本文标题:spark动态资源分配

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