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

如何在Jupyter Notebook中配置启动PySpark集群模式(Spark3.1.2)

误区澄清

PySpark完全支持集群模式运行,网传无法运行的说法是错误的,通常这类异常都是环境配置不一致、Python版本不匹配、网络端口未开放等问题导致的运行失败,而非PySpark本身不支持集群部署。

前置集群校验

修改代码前先确认以下集群状态正常:

  • 3台虚拟机的Spark Standalone集群已完成部署,主节点执行sbin/start-all.sh后,访问主节点默认8080端口的WebUI,可以看到3个Worker节点都已正常注册
  • 所有节点(包括运行Jupyter Notebook的机器)的Python大版本完全一致,例如统一使用Python 3.8系列,避免版本差异导致序列化失败
  • 所有节点都已安装代码中用到的第三方Python依赖,且依赖版本保持统一
  • 若用到Hadoop存储,需确保Hadoop集群正常运行,所有节点的HADOOP_CONF_DIR环境变量配置正确
启动代码修改方案

你原来的单机模式启动代码核心是将master参数设为local[*],修改为集群模式只需调整master地址并补充必要的资源配置即可,参考代码如下:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    # 替换为你自己的Spark主节点IP,Standalone模式默认通信端口为7077
    .master("spark://你的Spark主节点IP:7077") \
    .appName("PySpark集群测试") \
    # 以下资源配置可根据你的虚拟机硬件配置灵活调整
    .config("spark.driver.memory", "2g") \
    .config("spark.executor.cores", "2") \
    .config("spark.executor.memory", "4g") \
    .config("spark.executor.instances", "3") \
    # 统一所有节点的Python执行路径,避免找不到Python解释器
    .config("spark.pyspark.python", "python3") \
    .getOrCreate()
集群运行验证

启动会话后执行以下代码确认配置生效:

# 输出当前运行的master地址,确认输出为你配置的spark://主节点IP:7077
print(spark.sparkContext.master)
# 提交并行计算任务,会自动分发到多个Worker节点执行
rdd = spark.sparkContext.parallelize(range(10000), 10)
print(rdd.sum())

运行后访问Spark主节点WebUI,在Running Applications列表中可以看到当前任务,点击进入任务详情页,能看到Executor分布在3台虚拟机节点上即为配置成功。

常见异常排查
  • 任务提交后长时间无响应:检查主节点7077端口、Worker节点通信端口是否在防火墙放开,确认所有节点网络互通
  • 提示Python版本不匹配:统一运行Jupyter的Driver端和所有Worker节点的Python版本
  • 第三方依赖导入失败:所有Worker节点都需要安装对应版本的依赖,也可以通过conda打包Python环境后分发到集群使用

内容的提问来源于stack exchange,提问作者ABDELOUAHAB AMINE TAFAT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:48:03