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

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 进程的内存大小。

相关文章:

  • C#里WPF使用触发器实现鼠标点击响应
  • 【Linux笔记】——进程信号的产生
  • 麒麟系统安装.net core环境变量
  • OCCT 知识笔记之TopoDS_Compound 详解
  • css3响应式布局
  • Java详解LeetCode 热题 100(14):LeetCode 56. 合并区间(Merge Intervals)详解
  • 热门CPS联盟小程序聚合平台与CPA推广系统开发搭建:助力流量变现与用户增长
  • 解读RTOS:第二篇 · 线程/任务管理与调度策略
  • 佰力博科技与您探讨阻抗谱测量的基本原理和测量方法
  • CVE-2020-1957 漏洞报告
  • 香港维尔利健康科技集团成都区域运营中心投入使用,西南市场战略全面提速
  • labview硬件驱动——测试软件的安装(基于win11系统)
  • 多线程(2)——Thread类及常见方法
  • 项目功能-图片清理(上)
  • 基于SpringBoot的博客系统测试报告
  • 多模态论文笔记——Coca
  • 回答 | 图形数据库neo4j社区版可以应用小型企业嘛?
  • 手撕算法(定制整理版2)
  • 基于事件驱动和策略模式的差异化处理方案
  • Python动态渲染页面抓取之Selenium使用指南
  • 俄土外长通话讨论俄乌谈判问题
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,市场有望迎来新增量需求
  • 为证明我爸是我爸,我将奶奶告上法庭
  • 干部任职公示:陕西宁强、镇安两县县长拟进一步使用
  • 媒体谈法院就“行人相撞案”道歉:执法公正,普法莫拉开“距离”
  • 宣布停火后,印控克什米尔地区再次传出爆炸声