spark学习-spark shuffle操作的两个特点

spark shuffle操作的两个特点:

1.spark中bucket缓存默认是100KB,写入数据达到刷新到磁盘的阈值后,就会将数据一点一点刷新到磁盘。如果内存缓存过小,会发生过多的磁盘IO操作,需要根据实际的业务情况进行优化。

2.MapReduce必须将所有的数据都写入本地磁盘文件后,才能启动reduce操作,来拉取数据,因为MapReduce要实现默认的根据key的排序,需要写完所有的数据才能排序,然后reduce来拉取。spark默认情况下不会对数据进行排序,ShuffleMapTask每写入一点数据,ResultTask就可以拉取一点数据,然后在本地执行自定义的聚合函数和算子,进行计算。

spark这种机制好处是速度比MapReduce快很多。MapReduce提供的reduce可以处理每个Key对应的value,很方便。但是spark由于实时拉取的机制,不能直接处理key对应的values算子,只能通过groupByKey,先shuffle得到一个MapPartitionRDD,然后用map算子来处理每个key对应的values,比较繁琐。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值