Spark实践 -- 性能优化基础
性能调优相关的原理讲解、经验总结; 掌握一整套Spark企业级性能调优解决方案;而不只是简单的一些性能调优技巧。 针对写好的spark作业,实施一整套数据倾斜解决方案:实际经验中积累的数据倾斜现象的表现,以及处理后的效果总结。 调优前首先要对spark的作业流程清楚: Driver到Executor的结构; Master: Driver |-- Worker: Executor |-- job |-- stage |-- Task Task 一个Stage内, 最终的RDD有多少个partition,就会产生多少个task ,一个task处理一个partition的数据; 作业划分为task分到Executor上,然后一个cpu core执行一个task; BlockManager负责Executor,task的数据管理,task来它这里拿数据; 1.1 资源分配 性能调优的王道:分配更多资源。 分配哪些资源? executor、cpu per executor、memory per executor、driver memory 在哪里分配这些资源? 在我们在生产环境中,提交spark作业时,用的spark-submit shell脚本,里面调整对应的参数 /usr/local/spark/bin/spark-submit \ --class cn.spark.sparktest