美文网首页
Spark异常处理——数据倾斜

Spark异常处理——数据倾斜

作者: 西二旗老司机 | 来源:发表于2018-07-23 12:42 被阅读0次

    大多数任务都完成了,还有那么一两个任务怎么都跑不完或者跑的很慢,分为数据倾斜和task倾斜。

    错误提示

    1. 数据倾斜
    image.png
    2. Task倾斜

    差距不大的几个task,有的运行速度特别慢。

    解决

    1. 数据倾斜

    一般由于大量无效数据引起的,比如null或空串,也可能是某些异常数据(如爬虫等)
    比如:统计用户登录情况时,出现某用户登录过千万次的情况,在计算前需要将无效数据过滤掉。

    注:数据处理有一个原则,多使用filter,这样你真正需要分析的数据量就越少,处理速度就越快。

    sqlContext.sql("...where col is not null and col != ''")
    

    具体可参考:
    解决spark中遇到的数据倾斜问题

    2. 任务倾斜
    • Task倾斜原因比较多,网络io,cpu,mem都有可能造成这个节点上的任务执行缓慢,可以去看该节点的性能监控来分析原因。
    • 或者可以开启spark推测机制,如果某一台机器的几个task特别慢,推测机制会将任务分配到其他机器执行,最后Spark会选取最快的作为最终结果。
    spark.speculation=true
    spark.speculation.interval=100 - 检测周期,单位毫秒;
    spark.speculation.quantile=0.75 - 完成task的百分比时启动推测
    spark.speculation.multiplier=1.5 - 比其他的慢多少倍时启动推测。
    

    相关文章

      网友评论

          本文标题:Spark异常处理——数据倾斜

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