Spark目前支持的部署模式。

发布于:2025-05-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、本地模式(Local Mode)

特点

  • 在单台机器上运行,无需集群。
  • 主要用于开发、测试和调试。
  • 所有组件(Driver、Executor)在同一个 JVM 中运行。

启动命令

bash

spark-submit --master local[*] your_app.py

  • local:使用 1 个线程。
  • local[N]:使用 N 个线程。
  • local[*]:使用所有可用 CPU 核心。

二、独立集群模式(Standalone Mode)

特点

  • Spark 自带的集群管理器,无需依赖第三方系统。
  • 由 Master 节点(资源调度)和 Worker 节点(执行任务)组成。
  • 支持静态资源分配或动态资源分配。

部署步骤

  1. 在 $SPARK_HOME/conf/spark-env.sh 中配置:

    bash

    export SPARK_MASTER_HOST=hadoop-master
    export SPARK_WORKER_MEMORY=2g
    
  2. 启动集群:

    bash

    $SPARK_HOME/sbin/start-master.sh  # 主节点
    $SPARK_HOME/sbin/start-worker.sh spark://hadoop-master:7077  # 从节点
    
  3. 提交应用:

    bash

    spark-submit --master spark://hadoop-master:7077 your_app.py
    

三、Apache Mesos

特点

  • 通用的集群资源管理器,支持多框架(Spark、Hadoop 等)。
  • 细粒度的资源分配,支持动态资源共享。
  • 适合混合工作负载的场景。

部署步骤

  1. 安装 Mesos 集群(Master 和 Slave 节点)。
  2. 配置 Spark 连接 Mesos:

    bash

    spark-submit --master mesos://mesos-master:5050 your_app.py
    
  3. 支持两种模式:
    • Mesos Cluster Mode:Driver 在集群内运行。
    • Mesos Client Mode:Driver 在提交客户端运行。

四、Hadoop YARN

特点

  • Hadoop 的资源管理器,与 HDFS 深度集成。
  • 主流大数据平台的首选部署模式。
  • 支持两种运行模式:
    • Cluster Mode:Driver 运行在 YARN 集群内部。
    • Client Mode:Driver 运行在提交客户端(如本地机器)。

部署步骤

  1. 确保 Hadoop YARN 集群正常运行。
  2. 配置 $SPARK_HOME/conf/spark-env.sh

    bash

    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    
  3. 提交应用:

    bash

    # Cluster Mode
    spark-submit --master yarn --deploy-mode cluster your_app.py
    
    # Client Mode
    spark-submit --master yarn --deploy-mode client your_app.py
    

五、Kubernetes

特点

  • 云原生容器编排平台,支持自动化部署和扩缩容。
  • Spark 从 2.3 版本开始支持原生 Kubernetes 集成。
  • 无需预先部署 Spark 集群,按需创建容器。

部署步骤

  1. 配置 Kubernetes 集群。
  2. 提交 Spark 应用:

    bash

    spark-submit \
      --master k8s://https://<k8s-apiserver>:<port> \
      --deploy-mode cluster \
      --name spark-pi \
      --conf spark.executor.instances=3 \
      --conf spark.kubernetes.container.image=spark:3.3.2 \
      local:///path/to/your_app.py
    

六、云服务提供商集成

特点

  • 各大云厂商提供托管 Spark 服务,简化运维。
  • 支持自动扩缩容和高可用性。

常见服务

  • AWS EMR:托管 Hadoop、Spark 集群。
  • Google Cloud Dataproc:快速部署 Spark 集群。
  • Azure HDInsight:支持 Spark 的云数据服务。
  • 阿里云 E-MapReduce:集成 Spark、Hadoop 的大数据平台。

七、选择建议

场景 推荐模式
开发测试 本地模式
独立 Spark 集群 Standalone 模式
混合工作负载集群 Mesos
已有 Hadoop 环境 YARN
云原生环境 Kubernetes
托管服务 云厂商 Spark 服务

八、关键配置参数

  • --master:指定集群管理器(如 localspark://host:portyarn)。
  • --deploy-mode:Driver 运行位置(cluster 或 client)。
  • --executor-memory:每个 Executor 的内存大小。
  • --num-executors:启动的 Executor 数量。
  • --driver-memory:Driver 进程的内存大小。

网站公告

今日签到

点亮在社区的每一天
去签到