文档章节

spark内核揭秘-14-Spark性能优化的10大问题及其解决方案

stark_summer
 stark_summer
发布于 2015/01/26 11:29
字数 661
阅读 327
收藏 2

精选30+云产品,助力企业轻松上云!>>>

问题1:reduce task数目不合适

解决方案:

需要根据实际情况调整默认配置,调整方式是修改参数spark.default.parallelism。通常的,reduce数目设置为core数目的2-3倍。数量太大,造成很多小任务,增加启动任务的开销;数目太小,任务运行缓慢。所以要合理修改reduce的task数目即spark.default.parallelism

问题2:shuffle磁盘IO时间长

解决方案:

设置spark.local.dir为多个磁盘,并设置磁盘的IO速度快的磁盘,通过增加IO来优化shuffle性能;

问题3:map|reduce数量大,造成shuffle小文件数目多

解决方案:

通过设置spark.shuffle.consolidateFiles为true,来合并shuffle中间文件,此时文件数为reduce tasks数目;

问题4:序列化时间长、结果大

解决方案:

spark默认使用JDK 自带的ObjectOutputStream,这种方式产生的结果大、CPU处理时间长,可以通过设置spark.serializer为org.apache.spark.serializer.KeyoSerializer。

另外如果结果已经很大,那就最好使用广播变量方式了,结果你懂得。

问题5:单条记录消耗大

解决方案:

使用mapPartition替换map,mapPartition是对每个Partition进行计算,而map是对partition中的每条记录进行计算;

问题6 : collect输出大量结果时速度慢

解决方案:

collect源码中是把所有的结果以一个Array的方式放在内存中,可以直接输出到分布式的文件系统,然后查看文件系统中的内容;

问题7: 任务执行速度倾斜

解决方案:

如果数据倾斜,一般是partition key取得不好,可以考虑其他的并行处理方式,并在中间加上aggregation操作;如果是Worker倾斜,例如在某些Worker上的executor执行缓慢,可以通过设置spark.speculation=true 把那些持续慢的节点去掉;


问题8: 通过多步骤的RDD操作后有很多空任务或者小任务产生

解决方案:

使用coalesce或者repartition去减少RDD中partition数量;

问题9:Spark Streaming吞吐量不高

可以设置spark.streaming.concurrentJobs

问题10:Spark Streaming 运行速度突然下降了,经常会有任务延迟和阻塞

解决方案:

这是因为我们设置job启动interval时间间隔太短了,导致每次job在指定时间无法正常执行完成,换句话说就是创建的windows窗口时间间隔太密集了;

stark_summer
粉丝 61
博文 75
码字总数 51050
作品 0
朝阳
CEO
私信 提问
加载中
请先登录后再评论。
【Spark】SparkStreaming-Tasks-数量如何设置?

SparkStreaming-Tasks-数量如何设置? sparkstreaming task 数量设置百度搜索 spark内核揭秘-14-Spark性能优化的10大问题及其解决方案 - starksummer - ITeye博客 如何在执行spark streaming...

osc_5s0xzojq
2018/01/11
9
0
2020年重磅喜讯!热烈祝贺王家林大咖大数据经典传奇著作《Spark大数据商业实战三部曲》 畅销书籍第二版 清华大学出版社发行上市!

《Spark大数据商业实战三部曲》第二版购书链接: https://item.jd.com/12864870.html 编辑推荐 基于最新的Spark2.4.X版本,分为内核解密篇,商业案例篇,性能调优篇和Spark+AI解密篇,共32章...

duanzhihua
06/04
24
0
数据团队联合起来!Databricks Spark+AI 峰会倒计时!2020年6月22-26日

数据团队联合起来!Databricks Spark+AI 峰会倒计时!2020年6月22-26日 Spark + AI 峰会虚拟环境 个性化仪表盘 建立日程 Dev Hub + Expo 峰会任务和商店 Spark + AI2020峰会注册 选择门票类型...

osc_x4ot1joy
06/14
6
0
数据团队联合起来!Databricks Spark+AI 峰会倒计时!2020年6月22-26日

数据团队联合起来!Databricks Spark+AI 峰会倒计时!2020年6月22-26日 Spark + AI 峰会虚拟环境 个性化仪表盘 建立日程 Dev Hub + Expo 峰会任务和商店 Spark + AI2020峰会注册 选择门票类型...

段智华
06/13
0
0
Spark实战系列目录

1 Spark rdd -- action函数详解与实战 2 Spark rdd -- transformations函数详解与实战(上) 3 Spark rdd -- transformations函数详解与实战(下) 4 Spark rdd -- aggregate函数深度剖析与应用 ...

osc_9eqghyd8
2019/05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【题解】p6160 [Cnoi2020]向量

原题传送门 序 啊又是勤奋学习的一天...... 这种mo题目能做出来纯靠感觉。 样例分析 样例输入给了组3、4、5的勾股数,而输出正好是三向量加和为0时的答案。 嗯我好像感觉到了什么...... 于是...

osc_4dady4pk
14分钟前
13
0
【题解】p6160 [Cnoi2020]向量

原题传送门 序 啊又是勤奋学习的一天...... 这种mo题目能做出来纯靠感觉。 样例分析 样例输入给了组3、4、5的勾股数,而输出正好是三向量加和为0时的答案。 嗯我好像感觉到了什么...... 于是...

osc_a7a1prn6
15分钟前
0
0
FreeSql (一)入门

FreeSql是一个功能强大的 .NET ORM 功能库,支持 .NetFramework 4.0+、.NetCore 2.1+、Xamarin 等支持 NetStandard 所有运行平台。(QQ群:4336577) 模型 FreeSql 使用模型执行数据访问,模...

osc_smzoc82r
16分钟前
12
0
TCP协议粘包问题详解

TCP协议粘包问题详解 前言   在本章节中,我们将探讨TCP协议基于流式传输的最大一个问题,即粘包问题。本章主要介绍TCP粘包的原理与其三种解决粘包的方案。并且还会介绍为什么UDP协议不会产...

osc_tjnx25e9
18分钟前
0
0
Ubuntu16.04密码正确 进不去桌面系统(已测试恢复正常)

遇到过两次ubuntu输入密码正确,但是进不去系统,输入密码后,跳转到一下界面 之后又返回到登陆界面,一直这样循环输入密码。 Guest用户可以。 解决办法:   1。进入tty下 :ctrl+alt+F1(F...

osc_lfbryx1h
19分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部