zoukankan      html  css  js  c++  java
  • Spark 2.x Troubleshooting Guide

    IBM在spark summit上分享的内容,包括编译spark源码,运行spark时候常见问题(缺包、OOM、GC问题、hdfs数据分布不均匀等),spark任务堆/thread dump

    目录

    编译spark的问题

      1.正确配置相关环境,如Maven,JRE

      2.显示指定你要集成的功能

      3.编译速度比较慢的话,可以根据自己的环境设置多core提高速度

     

     

     spark运行时遇到的问题

      1.在不清楚spark某些配置时候,可以在spark-submit时候使用--verbose打印出当前环境具体信息

     

      2.缺少外部jar包问题,可以使用--packages参数指定缺失的jar包,--packages会先到本地maven仓库中找指定的jar包,如果本地仓库没有,就需要外部maven仓库下载。

    所以一般在生成环境,--packages不一定合适。在jar包比较少的情况下,可以通过--jars指定,比较多的话,也可以通过指定class path。这两种方式都是比较合适的

     

      2.Spark Driver OOM,默认driver内存一般都比较小(512M),建议自己指定。这个要根据实际情况设置

       3.GC时间过长,首先应该从代码逻辑判断是否有问题,然后考虑内存是否太小,最后考虑GC算法,目前来说G1 GC是针对大堆(4G以上)首选的GC算法,databricks有一遍关于spark任务优化G1 GC的文章写的很不错,链接在下面。

     

     

     

    4.关于spark任务资源的问题,如何最大化利用资源

     

    5.关于spark的"scratch" ,尽量不要使用默认的/tmp,图中描述的比较详细了。

     

     6.这种问题一般是用户在spark-sql中直接查询返回的数据量过大造成。也可能是用户应用中使用了拉取数据到driver端的API(例如:collect、show)。

    解决方法:用户应该考虑拉取数据到driver端是否合理?如果不合理,增加过滤条件或者采用insert overwrite directory命令解决;如果合理,则适当增加spark.driver.maxResultSize的大小。

     

     

     

     

     

     

     

  • 相关阅读:
    外键的缺陷
    laravel 关联模型
    n的阶乘末尾出现的次数
    JavaScript的self和this使用小结
    cocos2dx中的内存管理方式
    c++ 与 lua 简单交互参数介绍
    c++的单例模式及c++11对单例模式的优化
    cocos2dx帧动画
    cocos2dx中坐标系
    cocos2dx中替代goto的用法:do{}while(0)和CC_BREAK_IF
  • 原文地址:https://www.cnblogs.com/zz-ksw/p/11530032.html
Copyright © 2011-2022 走看看