Databricks集群计算资源是全局共享还是绑定单Worker节点?
Databricks集群计算资源分配规则解答
核心分配逻辑
默认配置下,Databricks集群的计算资源是全局池化共享的,不会与单个Worker节点绑定。底层基于Spark的资源调度机制,会把集群所有Worker的CPU、内存资源汇总为统一的资源池,按需分配给不同用户的作业,不需要占用完整Worker节点的资源。
示例场景解答
针对你提到的2个4核Worker、总8核资源的集群场景:
- 无特殊配置的前提下,两个分别需要2核、6核的作业可以同时运行,共享集群总计8核的资源。2核作业只会占用申请的2核资源,不会锁死所在Worker的全部4核,调度器会把两个Worker上剩余的总共6核资源分配给第二个作业使用。
- 只有在你手动调整了特殊配置的情况下,才会出现单作业占用整个Worker资源的情况,最常见的配置是将
spark.executor.cores(单Executor占用核数)设置为4,此时每个Worker只能启动1个Executor,作业只要申请到Executor就会占用该Worker的全部4核,这种场景下2核作业会占满1个Worker的资源,剩余只有另一个Worker的4核可用,无法满足6核作业的资源需求。
补充说明
如果集群开启了公平调度策略,多用户提交作业时调度器会按预设的权重分配资源,只要总空闲资源满足作业需求,就会调度执行,不会强制要求单作业的所有资源都部署在同一个Worker节点上。
内容的提问来源于stack exchange,提问作者xr3Lt
相关产品推荐
相关产品推荐

