spark并行度学习笔记

本文介绍了Spark并行度的基本概念,包括资源并行度与数据并行度,并探讨了两者之间的关系。详细讨论了初始化RDD、Map操作及Reducer操作时的数据并行度,提出在特定操作中如何调整并行度以优化性能。总结了如repartition和reduceByKey等算子在设置并行度中的应用,以及关键配置参数的作用,如`spark.default.parallelism`和`spark.sql.shuffle.partitions`。
摘要由CSDN通过智能技术生成

问题

spark是并行处理的大数据框架。所以,很多时候程序的运行速度,失败原因都和并行度有关。那什么是并行度?并行度怎么设置?

并行度的概念

资源并行度与数据并行度

我理解的有两类并行度,一种时资源的并行度,由节点数(executor)和cpu数(core)决定的。另一种并行度就是task的数据,也就是partition大小。task又分为map时的task和reduce(shuffle)时的task.task的数目和很多因素有关,资源的总core数,spark.default.parallelism参数,spark.sql.shuffle.partitions参数,读取数据源的类型,shuffle方法的第二个参数,repartition的数目等等。

这两种并行度的关系

如果task的数量多,能用的资源也多,那么并行度自然就好。如果task的数据少,资源很多,有一定的浪费,但是也还好。如果task数目很多,但是资源少,那么会执行完一批,再执行下一批。所以官方给出的建议是,这个task数目要是core总数的2-3倍为佳。如果core有多少task就有多少,那么有些比较快的task执行完了,一些资源就会处于等待的状态。

关于数据并行度

初始化RDD时

数据化RDD时,所形成的task数据是和HD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值