关于spark Executor OOM的问题引发的联想
来源:互联网 发布:vibe算法改进代码 编辑:程序博客网 时间:2024/05/14 02:38
最近被问到executor OOM如何处理的问题,一开始想可以调整spark.executor.cores的大小,因为每个executor中多个task是共享同一个heap的大小的,spark中资源的分配是以executor为单位分配的。
另外在看join和cogroup的区别的时候,发现join是在cogroup基础上封装的,但是join有可能会有笛卡尔积的情况。具体原因,这里不展开。
看源码一个比较新的发现是cache和persist的区别,cache是在persist的基础上封装的,persist根据传入的storageLevel来决定是将数据存入硬盘还是内存,cache就是把这个参数设为内存,这在一定程度上保证了读取数据的速度,当时也会造成OOM。所以如果是比较大块的数据需要做cache,又不想放在内存中的话,可以考虑persist的方法存入硬盘而不是用cache。
这就是目前想到的可能会OOM的问题。当然这都是在executor上的,如果是在driver上的,目前来看task数量过多的话,各种监控的event-loop有可能会导致OOM,在目前的spark版本上只能通过spark.driver.memory调大或者减少shuffle和减少task数量来解决。
还有就是在join之前,通过reparitionBy来使得同一个key在同一个partition上可以减少很多shuffle,这个又是一个新的文章了。
水平有限,仅供参考。如有遗漏,欢迎补充
0 0
- 关于spark Executor OOM的问题引发的联想
- 关于QQ等级需要小时数引发的算法联想
- 《黑客帝国》引发关于缸中之脑的联想
- 关于SHFileOperation引发的问题
- 关于一个小问题的联想
- 关于联想Y450光驱不读盘的问题
- Spark GraphX进行图计算时的OOM问题
- Spark面对OOM问题的解决方法及优化总结
- Spark面对OOM问题的解决方法及优化总结
- Spark面对OOM问题的解决方法及优化总结
- Spark面对OOM问题的解决方法及优化总结
- Spark面对OOM问题的解决方法及优化总结
- Spark对OOM问题的解决方法及优化
- Spark面对OOM问题的解决方法及优化总结
- Spark的Worker/Instance /Executor之间的
- 一只老虎引发的联想
- 延安客车罐车相撞引发的联想
- 由 Android WebKit html5 引发的联想
- android从放弃到坚持放弃第五课
- 短信登录集成三步骤-sharedSdk
- 09动态库的设计和实现
- Java 抽象类
- spark高级数据分析-scala学习(学习笔记)
- 关于spark Executor OOM的问题引发的联想
- SQL 性能调优日常积累
- pl/sql 程序结构基础1
- spring框架入门(一)
- OC_字符串显示不同颜色
- linux 常用命令案例
- Oracle事物
- Java 七武器系列长生剑:Java 虚拟机的显微镜 Serviceability Agent
- C快速排序