深入探究Spark -- 了解Executor和参数配置

创建与分配Executor的方式根据各种资源调度方式的不同而有差异,但拿到Executor后每种资源调度方式下的Executor的运作都一样,并由Executor完成最终的计算
 
Task在Executor中执行时涉及到依赖环境的创建和分发、任务执行、任务结果的处理、Driver端的处理(书中有详细介绍,但和前面Scheduler感觉有重复部分)
 
 
 
Executor的工作参数设置:
 
spark.executor.memory:
 
配置Executor最多使用的内存大小,原理是设置Executor的JVM Heap尺寸实现。由于内存资源有限,此参数设置过大会导致部分任务分配不到资源,设置过小会产生频繁的垃圾回收和读写磁盘
 
每个Executor可以支持的Task数量取决于持有的CPU core的数量
 
准确评估数据集,要看在BlockManager的日志中的RDD cache,每个cache分区大小
 
内存比较紧张时,可以合理规划分区任务的数据规模,如增加分区数可增加任务数,减小每个任务的处理量
 
 
日志相关:
 
spark.eventLog.enabled设置为true打开日志保存到本地,方便调试和追踪问题,但日志需要定时清理,清理策略可以设置:
 
 
spark.executor.heartbeatInterval:
 
Executor和Driver的心跳间隔,就是汇报运行和统计信息的间隔
 
 
 
 
原文地址:https://www.cnblogs.com/kinghey-java-ljx/p/8522589.html