Azure Databricks集群是否支持调整单节点executor数量?
Azure Databricks runs one executor per worker node; therefore the terms executor and worker are used interchangeably in the context of the Azure Databricks architecture.
中文释义:Azure Databricks每个工作节点运行1个executor,因此在Azure Databricks架构语境下,executor与worker两个术语可互换使用。
问题1:上述官方表述是否意味着Azure Databricks单工作节点的executor数量固定为1,不支持用户自定义调整?
是。Azure Databricks在架构层就固化了单工作节点仅运行1个executor的逻辑,没有开放调整单节点executor部署数量的配置入口。
用户在集群配置页面能调整的executor相关参数,本质是选择worker节点的虚拟机规格——也就是给节点上这个唯一的executor分配多少CPU、内存资源,无法像使用开源Spark那样,在同一个worker节点上拆分部署多个独立的executor进程。
问题2:开源Spark领域单executor分配5核保障HDFS吞吐量的经验配置法则,是否不适用于Azure Databricks集群?
该通用规则确实不适用于Azure Databricks集群,原因如下:
- 首先这个5核经验法则的适用前提,是开源Spark常规部署模式下通常会在单个worker上运行多个executor,需要平衡单executor的GC开销、HDFS客户端并发吞吐能力、任务并行效率,才总结出单executor分配5核左右的最优实践。
- Azure Databricks单worker节点仅运行1个executor,这个executor会占用当前节点除系统服务、Databricks运行时守护进程外的全部CPU、内存资源,你选择多少vCPU规格的worker VM,这个executor就能拿到接近对应规格的计算资源,根本不存在“给单个executor分配多少核”的拆分配置场景。
- 此外Azure Databricks对存储访问层、执行引擎做了大量定制优化,包括DBFS存储栈优化、Photon向量化执行引擎等,已经解决了大核数单executor场景下的吞吐瓶颈、长GC停顿等开源Spark常见问题,实际配置时只需要根据作业的并行度、内存需求选择对应规格的worker节点即可,不需要硬套5核的配置规则。
内容的提问来源于stack exchange,提问作者Rakesh Makhijani
相关产品推荐
相关产品推荐

