You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark调用方/被调用方Notebook的Executor分配机制及配置优化

Azure Synapse Notebook调用的Executor分配与配置方案

一、被调用Notebook的Executor分配规则

用mssparkutils.notebook.run()调用的Notebook,是作为独立的Spark作业运行的,每个被调用Notebook的Executor分配完全基于自身的配置,和调用方Notebook无关:

  • 如果被调用Notebook没有自定义Spark配置,会使用它绑定的Spark池的默认配置(包括Executor数量、核数、内存等);
  • 如果被调用Notebook在代码里设置了spark.executor.instances这类参数,会优先使用这些自定义配置覆盖Spark池的默认值。

调用方Notebook本身的配置只影响它自己的Spark会话,不会传递给被调用的Notebook。

二、三个Notebook的理想配置方案

1. 调用方Notebook(包装器)

因为它只负责执行调用命令,没有实际的计算任务,所以配置要尽量轻量化:

  • 选择最小规格的Spark池(比如小实例、少量Executor),或者直接用Synapse的Serverless Spark池(如果场景适配);
  • 不需要配置大量Executor,1-2个Executor足够支撑调用逻辑,避免资源浪费。

2. 被调用的Notebook(notebook_1和notebook_2)

要根据各自的计算负载来配置,绝对不要盲目用最大数量的Executor:

  • 如果是处理大数据量的ETL、聚合等重型任务:根据数据规模和计算复杂度,从Spark池允许的中等数量开始测试,逐步调整到最优Executor数量;
  • 如果是轻量任务(比如小数据查询、简单数据处理):用少量Executor即可,避免占用过多闲置资源;
  • 注意:当前代码是串行执行两个被调用Notebook(先跑完notebook_1再跑notebook_2),两者会依次使用资源,无需考虑并行冲突;如果后续改成并行调用,要确保两个Notebook的总资源请求不超过Spark池的最大容量,避免资源争抢导致任务延迟。

核心原则

资源配置要匹配任务实际需求,避免过度配置浪费成本,也不要配置不足导致任务执行缓慢。可以通过Synapse的监控面板查看每个Notebook的资源使用情况,再逐步调整配置。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:12:06