zoukankan      html  css  js  c++  java
  • Spark shuffle失败的可能原因 及解决办法

    大数据Spark任务中,分区数过小,每个分区的数据量会很大,执行join、crossjoin的过程,有可能导致shuffle write失败的操作。 可能原因包括:

    •    executor.memory内存不足,导致相应比例的nio资源不足,
    •    executor.memoryOverhead不足,没有足够的nio资源,从而导致失败。

    其他的可能导致shuffle write失败或者节点访问异常的原因:   executor--cores数目过大,适当降低executor-cores,增加num-executors,不降低运行速度,但是每个executor的内存需求降低,shuffle write失败的问题可以避免。

    repartition后,增大分区数,减小每个分区的数据量,可以总体避免上述问题,但是如果设置分区过大,可能造成如下的问题:

    1) 频繁的创建task,并行的running数目一直在变化的,比如最大是可能task数700,执行完639个后,剩下61个task还在执行这一批,从而显示出还有61个running,频繁的创建任务消耗大量资源

    2)高并发执行完小的/均匀的分区后,最后剩余的部分分区,可能因为划分不均匀,反而只利用少量task资源,导致耗时超长。

     
  • 相关阅读:
    二次冲刺站立会议七
    二次冲刺站立会议六
    二次冲刺站立会议五
    二次冲刺站立会议四
    二次冲刺站立会议三
    二次冲刺站立会议二
    二次冲刺站立会议一
    Linux课程学习总结
    仿知乎专栏的软件系统设计方案
    仿知乎专栏的需求分析和概念原型
  • 原文地址:https://www.cnblogs.com/operaculus/p/15663025.html
Copyright © 2011-2022 走看看