王家林谈Spark性能优化第八季之Spark Tungsten-sort Based Shuffle 内幕解密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了王家林谈Spark性能优化第八季之Spark Tungsten-sort Based Shuffle 内幕解密相关的知识,希望对你有一定的参考价值。
内容:
1、"钨丝计划"Shuffle实例;
2、"钨丝计划"下的Shuffle解密;
现在SparkSQL就是用的"钨丝计划"来处理Shuffle的
==========使用Tubsten功能============
1、如果想要你的程序使用Tungsten功能,可以设置
spark.shuffle.manager=tungsten-sort
2、DataFrame中自动开启了Tungsten功能;
==========Tungsten-based shuffle writer内幕============
1、写数据在内存足够大的情况下是写到 Page里面,在Page 中有一条条的 Record,如果内存不够的话会Spill到磁盘上;
2、 如何看内存是是否足够呢?两方面:
1) 系统默认情况下给ShuffleMapTask最大准备了多少内存空间,默认情况下是ExecutorHeapMemory * 0.8 * 0.2
spark.shuffle.memoryFraction=0.2 spark.shuffle.safetyFraction=0.8
2) 另外一方面是和Task处理的Partition大小紧密相关;
3、在Tungsten下获取数据的类叫做 BlockStoreShuffleReader,其底层其实是Page;
王家林老师名片:
中国Spark第一人
新浪微博:http://weibo.com/ilovepains
微信公众号:DT_Spark
博客:http://blog.sina.com.cn/ilovepains
手机:18610086859
QQ:1740415547
本文出自 “一枝花傲寒” 博客,谢绝转载!
以上是关于王家林谈Spark性能优化第八季之Spark Tungsten-sort Based Shuffle 内幕解密的主要内容,如果未能解决你的问题,请参考以下文章
王家林谈Spark性能优化第九季之Spark Tungsten内存使用彻底解密