当前位置: 首页 > ai >正文

Spark目前支持的部署模式。

一、本地模式(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 进程的内存大小。
http://www.xdnf.cn/news/5555.html

相关文章:

  • 【ZYNQ Linux移植】5-根文件系统移植
  • C++匿名函数
  • Babylon.js学习之路《三、创建你的第一个 3D 场景:立方体、球体与平面》
  • MyBatis 动态 SQL 核心标签教程:_if_, _where_, _foreach_
  • 第六节第一部分:认识抽象类及其好处
  • 字节高效图像定制生成模型框架:DreamO论文速读
  • 【数据结构】map_set前传:二叉搜索树(C++)
  • Window、CentOs、Ubuntu 安装 docker
  • 学习黑客5 分钟深入浅出理解Windows System Configuration
  • 【免费】2005-2018年各省人均财政收支数据
  • Qt for Android申请允许管理所有文件权限
  • n8n 修改或者智能体用文档知识库创建pdf
  • SSRF相关
  • 单片机ESP32天气日历闹铃语音播报
  • 《Python星球日记》 第66天:序列建模与语言模型
  • 【类拷贝文件的运用】
  • Kubernetes控制平面组件:Kubelet 之 Static 静态 Pod
  • 添加购物车-02.代码开发
  • flutter使用命令生成BinarySize分析图
  • 【漫话机器学习系列】255.独立同分布(Independent and Identically Distributed,简称 IID)
  • 原生的 XMLHttpRequest 和基于 jQuery 的 $.ajax 方法的异同之处以及使用场景
  • MiMo-7B-RL调研
  • 【数据结构入门训练DAY-32】LETTERS
  • 【C++进阶篇】多态
  • 设计杂谈-工厂模式
  • 象限法思维
  • 2025年AI工程师认证深度解析:AAIA认证体系全景指南与实战策略
  • css3响应式布局
  • 将语言融入医学视觉识别与推理:一项综述|文献速递-深度学习医疗AI最新文献
  • 初识 Pandas:Python 数据分析的利器