问题一:有哪些资源可以分配给spark作业使用? 答案:executor个数,cpu per exector(每个executor可使用的CPU个数),memory per exector(每个executor可使用的内存),driver memory 问题二:在什么地方分配资源给spark作业? 答案:很简单,就是在我们提交spark作业的时候的脚本中设定,具体如下(这里以我的项目为例) /usr/local/spark/bin/spark-submit \ --class  com.xing…
降低cache操作的内存占比 方案: 通过SparkConf.set("spark.storage.memoryFraction","0.6")来设定.默认是0.6,可以设置为0.5 0.3 等 原因: spark中,堆内存又被划分成了两块儿,一块儿是专门用来给RDD的cache.persist操作进行RDD数据缓存用的:另外一块儿,就是我们刚才所说的,用来给spark算子函数的运行使用的,存放函数中自己创建的对象.默认情况下,给RDD cache操作的内存占比是0…
1 task的内存缓冲调节参数 2 reduce端聚合内存占比 spark.shuffle.file.buffer                     map task的内存缓冲调节参数,默认是32kb spark.shuffle.memoryFraction          reduce端聚合内存占比,默认0.2 怎么判断在什么时候对这两个参数进行调整呢? 通过监控平台查看每个executor的task的shuffle write和shuffle read的运行次数,如果发现这个指标的运…
数据本地化等待时长调节的优化 在项目该如何使用? 通过 spark.locality.wait 参数进行设置,默认为3s,6s,10s. 项目中代码展示: new SparkConf().set("spark.locality.wait","10"); 作者:z小赵 链接:https://www.jianshu.com/p/99ef69adc2b1 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.…
广播大变量,重复用到的变量 原因见 https://www.jianshu.com/p/2c297b23ebda…
如果一个RDD在两个地方用到,就持久化他.不然第二次用到他时,会再次计算. 直接调用cache()或者presist()方法对指定的RDD进行缓存(持久化)操作,同时在方法中指定缓存的策略. 原文:https://www.jianshu.com/p/9555644ccc0f…
本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让在进入性能调优之前都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优.希望这篇文章能为读者带出以下的启发: 了解大数据性能调优的本质 了解 Spark 性能调优要点分析 了解 Spark 在…
Spark性能优化指南——基础篇 https://tech.meituan.com/spark-tuning-basic.html Spark性能优化指南——高级篇 https://tech.meituan.com/spark-tuning-pro.html [Spark性能调优] 第二章:彻底解密Spark的HashShuffle http://www.cnblogs.com/jcchoiling/p/6431969.html [Spark性能调优] 第三章 : Spark 2.1.0 中 S…
[重要] Spark性能调优——扩展篇 : http://blog.csdn.net/zdy0_2004/article/details/51705043…
Spark性能调优之代码方面的优化 1.避免创建重复的RDD     对性能没有问题,但会造成代码混乱   2.尽可能复用同一个RDD,减少产生RDD的个数   3.对多次使用的RDD进行持久化(cache,persist,checkpoint) 如何选择一种最合适的持久化策略?     默认MEMORY_ONLY, 性能很高, 而且不需要复制一份数据的副本,远程传送到其他节点上(BlockManager中的BlockTransferService),但是这里必须要注意的是,在实际的生产环境中,…