一、集群配置与资源管理
1. 资源分配优化
- 内存分配:通过
spark.executor.memory
和spark.driver.memory
调整执行器和驱动程序的内存 -
# 示例:提交作业时分配内存 spark-submit --executor-memory 8g --driver-memory 4g ...
- CPU 核数:使用
spark.executor.cores
控制每个执行器的 CPU 核数,避免资源竞争。
2. 分布式计算配置
- 并行度调整:通过
spark.default.parallelism
设置默认分区数,通常为集群总核数的 2-3 倍。 - 数据本地化:设置
spark.locality.wait
优化数据与计算的本地性,减少数据传输开销。
二、模型训练与部署流程
1. 训练过程监控
- Web UI 监控:通过 Spark Web UI(默认端口 4040)实时查看作业进度、资源使用、阶段执行时间。
- 日志分析:配置
log4j.properties
收集详细日志,分析训练瓶颈(如数据倾斜、OOM 错误)