栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

为什么spark的job任务运行速度慢

为什么spark的job任务运行速度慢

spark的job运行速度慢回答 分析过程: 第一个、分析时应该分析数据量小的时候还是数据量大的时候 如果是数据量小的时候,可能会出现任务卡住了,任务卡住可能有两种原因第一是调度器有问题(yarn有问题,可能是nodemanager挂掉了,他就没办法安排任务了,nodemanager的队列塞满了)还有一种可能就是spark引擎自身的问题,可能会发生内存泄露问题,泄露到hadoop底层环境,hadoop底层是java,你要去看java的gc(垃圾回收机制),可能是java的gc线程阻塞没办法启动gc,导致内存泄露 如果是数据量大的时候,可能会出现非平衡问题,就是数据倾斜问题 第二个、还有什么原因会导致呢,你的yarn调度的时候跟mapreduce是一样的,会经过map、suffle、reduce过程,出问题大概率在suffle过程,怎么解决?通过查看spark日志文件(进到sparkweb页面查看正在进行的work,看看有没有任务在partition或suffle里面,如果卡住了就要做suffle调优,可以通过spark.env里面把spark改成true,这就是所谓的推测式执行task) 第三个、操作很多个RDD步骤时,如果含有很多个空任务或小任务的情况下,会导致spark集群的性能下降 总结: ①spark的吞吐量,单一节点的吞吐量 ②每一个步骤的RDD操作的空任务和小任务 ③数据倾斜 ④spark的序列化的时间较长 ⑤suffle小文件多或分片数量过大 ⑥suffle本身io时间偏长,因为gc进程进入了阻塞状态。 ⑦map太多,reduce不够 ⑧spark里面有个connect,如果你不断的往里面输入大量的结果,他也是会变慢的。 ⑨单条记录它的开销大,也是导致spark变慢的原因 改进: ①如果有相同的RDD,使用同一个RDD(RDD持久化) ②做suffle的时候可以做一个预聚合 ③改广播变量 ④优化序列化的问题 ⑤写程序的时候可以减少拆箱和装箱的过程 ⑥做资源调优,修改spark的yarn,yarn有很多策略,最基本的filein和fileout这种先来先服务的队列结构,如果要修改的话,减可以用一种公平的借用原则去做(公司部门借人的例子) ⑦大规模的改suffle过程,在execute里面去改 ⑧调整数据倾斜,尽量少用这种比较倾斜的分片来做
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号