![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark性能优化
你锋哥真的强
这个作者很懒,什么都没留下…
展开
-
Spark性能调优----算子filter过后使用coalesce减少分区数量
默认情况下,经过了这种filter之后,RDD中的每个partition的数据量,可能都不太一样了。(原本每个partition的数据量可能是差不多的)问题:1、每个partition数据量变少了,但是在后面进行处理的时候,还是要跟partition数量一样数量的task,来进行处理;有点浪费task计算资源。2、每个partition的数据量不一样,会导致后面的每个task处理每个partiti...原创 2018-03-05 00:05:31 · 901 阅读 · 0 评论 -
Spark性能调优----troubleshooting之控制shuffle reduce端缓冲大小以避免OOM
map端的task是不断的输出数据的,数据量可能是很大的。但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,立即进行后面的聚合、算子函数的应用。每次reduece能够拉取多少数据,就由buffer来决定。因为拉取过来的数据,都是先放在buffer中的。然后才用后面的ex...原创 2018-03-05 13:16:46 · 209 阅读 · 0 评论 -
Spark性能优化------troubleshooting之解决JVM GC导致的shuffle文件拉取失败
有时会出现的一种情况,非常普遍,在spark的作业中;shuffle file not found。(spark作业中,非常非常常见的)而且,有的时候,它是偶尔才会出现的一种情况。有的时候,出现这种情况以后,会重新去提交stage、task。重新执行一遍,发现就好了。没有这种错误了。log怎么看?用client模式去提交你的spark作业。比如standalone client;yarn clie...原创 2018-03-05 13:37:22 · 253 阅读 · 0 评论 -
Spark性能优化----troubleshooting之解决各种序列化导致的报错
你会看到什么样的序列化导致的报错?用client模式去提交spark作业,观察本地打印出来的log。如果出现了类似于Serializable、Serialize等等字眼,报错的log,那么恭喜大家,就碰到了序列化问题导致的报错。虽然是报错,但是序列化报错,应该是属于比较简单的了,很好处理。序列化报错要注意的三个点:1、你的算子函数里面,如果使用到了外部的自定义类型的变量,那么此时,就要求你的自定义...原创 2018-03-05 14:54:29 · 165 阅读 · 0 评论 -
Spark性能优化-------troubleshooting之解决算子函数返回NULL导致的问题
大家可以看到,在有些算子函数里面,是需要我们有一个返回值的。但是,有时候,我们可能对某些值,就是不想有什么返回值。我们如果直接返回NULL的话,那么可以不幸的告诉大家,是不行的,会报错的。Scala.Math(NULL),异常如果碰到你的确是对于某些值,不想要有返回值的话,有一个解决的办法:1、在返回的时候,返回一些特殊的值,不要返回null,比如“-999”2、在通过算子获取到了一个RDD之后,...原创 2018-03-05 15:36:13 · 166 阅读 · 0 评论