FLEET SCHEDULING VIEW
Spark Fleet 多 Worker 调度框图
先看全局调度关系:Driver 统一派单到多个 Worker,每个 Worker 内并行执行 Executor,并通过 Shuffle 进行跨节点数据交换。
示例拓扑: 1 Driver + 4 Workers + 12 Executors
实线蓝箭头: Driver 派发 Task 到 Worker
青色虚线: Worker 心跳与状态回报
粉色虚线: Worker 间 Shuffle 重分发
VISUAL BLUEPRINT
Spark 现代化高速物流转运中心全景图
抛开复杂的 RDD、Shuffle 与 JVM 参数词汇。下方交互蓝图展示了一个完整的 Spark 分布式作业在“物流枢纽”中的物理映射。点击图示中的各个模块可查看对应 Spark 参数与最佳实操建议。
点击任意组件进行深度拆解
Driver Node
spark.driver.memory / spark.driver.cores
👮♂️ 调度总指挥部 (Logistics Dispatcher / Driver Node)
调度总指挥部是 Spark 作业的大脑(Driver)。它不直接参与具体搬运,而是将用户提交的程序解析为 DAG 路线图、切割为 Stages,并将上万个分拣 Task 打包发给远程卡车。如果执行 `collect()` 会将所有货物拉回指挥部,极易爆仓崩溃。
核心配置建议
spark.driver.memory = 4g~32g
物流风险点
collect() 大数据导致指挥部 OOM 瘫痪
费曼直觉总结
指挥官手里的路线图要清淅,绝不能把全部包裹全拉回指挥室。
SMART CONFIGURATOR
Spark 车队规模与容量计算器 (Sizing Calculator)
输入业务数据指标与服务器规格,自动推导黄金节点比、卡车数与生产级 CLI 命令行
1000 GB (1 TB)
2.0 小时
1.8x (含 JOIN 与聚合)
物理 Worker 节点服务器规格
📊 自动推导配置参数 (Recommended Spec)
推荐 Worker 节点数:
8 台
推荐 Executor 卡车总数:
24 辆
单车搬运工 (--executor-cores):
5 Cores
单车车厢内存 (--executor-memory):
18 GB
推荐 Shuffle 分区数:
360
集群整体算力吞吐:
714 GB / Hour
生产级 spark-submit 提交命令 (CLI)
spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 24 \
--executor-cores 5 \
--executor-memory 18g \
--driver-memory 8g \
--conf spark.memory.offHeap.enabled=true \
--conf spark.memory.offHeap.size=2g \
--conf spark.sql.shuffle.partitions=360 \
--class com.logistics.spark.FeynmanJob \
hdfs:///apps/spark-jobs/feynman-job.jar