saveAsTextFile很慢very slow

24 篇文章 27 订阅 ¥9.90 ¥99.00
本文探讨了在Spark程序中遇到`saveAsTextFile`操作速度慢的问题。作者通过分析发现,问题并非出在IO瓶颈,而在于计算密集型任务。在增加count操作后,发现程序卡在了count阶段。最终,通过增加分区数和executor数量,并调整每个core的内存,优化了程序性能。
摘要由CSDN通过智能技术生成

问题表象:通过spark UI观察整个执行阶段开在saveAsTextFile阶段,很多task一直处于运行阶段,感觉很慢,程序是不是卡出了。

初步判断:saveAsTextFile既然是卡在了这,肯定是IO瓶颈吧?因为其他阶段特别快呀

分析:

首先根据以往经验,saveAsTextFile应该是一个非常快速的操作。

查看save的结果,只有1024M左右(为我的耐心点赞,为了看输出结果,我等了60分钟!等的花都谢了),可以断定把这个量级的数据导出来是不会消耗多少时间的

那问题来了,这到底是在哪里出了问题导致这么慢,通过UI感觉前面的计算阶段很快呀

很遗憾,那都是表现,不信你在saveAsTextFile面前加一个count的,然后你会发现在spark UI中不在卡在save阶段了,而是卡在了count

豁然开朗,本spark程序并不是一个IO密集型的程序,而是一个计算密集型的程序


怎么办?

翻开spark程序优化宝典,看了半天全是在围绕内存和序列化做文章!

然后再看看自己程序,使用了传说中宇宙最强的序列化类,而且内存已经快开到队列的极限,马上就要引起运维大哥的注意了

回到最初,也许spark除了内存计算最强外,spark还有个分布式的概念吧

对了,那就是增加并行度

增加分区数,增加到365试试,同时增加--num-executors的数量,别怕,先让它等于前面的分区个数试试,记得调低每个core的内存,不然队列就爆了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只要开始永远不晚

谢谢打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值