Spark streaming 实时应用性能调优


Spark streaming应用调优 韩红根 2014.09 www.jd.com www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题1:建立一个数据接收流进行数据 接收,数据会存放于接收work及备份 work上。在任务调度时考虑到数据本地 性,task调度到接收流和副本所在两个 work上,其他work空闲,形成计算不均 • 解决:1)设置多个接收流 2)通过 repartition调节RDD中partition数量,将 task调度分散,使得计算均匀。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题2:reduce task数目不合适 • 解决:默认为8,需根据实际情况进行调 节。可调节参数spark.default.parallelism。 通常,reduce数目设置为core数目的2---3 倍。数量太大,造成很多小任务,增加启 动任务的开销;数目太少,任务运行缓慢。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题3:shuffle磁盘IO时间长 • 解决:可以设置spark.local.dir为一组磁盘, 并尽量设置磁盘为IO速度快的磁盘。通过 增加IO来优化shuffle性能。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题4:map|reduce数量大,造成shuffle 小文件数目多,default: shuffle文件数目为 map tasks * reduce tasks • 解决:通过设置 spark.shuffle.consolidateFiles为true,来 合并shuffle中间文件,文件数为reduce tasks数目。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题5:GC或OOM问题严重 • 解决:调整spark.storage.memoryFraction。 Default:0.6。Further,观察app运行过程 中的GC实际情况,进行其他调节。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题6:block not found • 解决:调整spark.cleaner.ttl。RDD及元数 据的过期时间。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题7:序列化时间长或结果大。 • 解决:通过设置spark.serializer为 org.apache.spark.serializer.KryoSerializer。 使用广播变量。 www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题8:系统吞吐量不高 • 解决:设置 spark.streaming.concurrentJobs. www.jd.com 一、产品介绍 二、主要特性 三、产品演示 一、产品介绍 二、主要特性 三、产品演示 • 问题9:单条记录消耗大 • 解决:使用mapPartition替换map. 谢谢
还剩10页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

erbq

贡献于2014-09-18

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf