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

spark的Standalone模式介绍

Apache Spark 的 Standalone 模式是其自带的集群管理模式,无需依赖外部资源管理器(如 YARN 或 Mesos),可快速部署和运行 Spark 集群。以下是对 Standalone 模式的详细介绍:

1. 核心组件

Master 节点
  • 集群的主控制器,负责资源分配和任务调度。
  • 管理 Worker 节点的注册和状态监控。
  • 接收客户端提交的应用程序,并为其分配资源。
Worker 节点
  • 工作节点,负责执行具体的计算任务。
  • 向 Master 注册并汇报可用资源(内存、CPU)。
  • 为应用程序启动 Executor 进程。
Executor
  • 每个应用程序专属的进程,负责执行具体的任务(Task)。
  • 持有应用程序的内存数据(如 RDD 缓存)。
Driver
  • 运行用户编写的 Spark 应用程序的主程序。
  • 负责将应用程序转换为 DAG(有向无环图),并提交给 Master 进行调度。

2. 工作流程

  1. 集群启动
    启动 Master 节点和多个 Worker 节点,Worker 自动向 Master 注册。

  2. 应用提交
    用户通过spark-submit命令提交应用,Driver 程序在客户端或集群中启动。

  3. 资源分配
    Driver 向 Master 请求资源(CPU 和内存),Master 通知 Worker 节点启动 Executor。

  4. 任务执行
    Driver 将任务分发给 Executor 执行,Executor 将结果返回给 Driver。

  5. 资源释放
    应用程序完成后,Executor 和资源被释放。

3. 部署模式

Client 模式
  • Driver 在客户端运行:适用于交互式作业(如 Spark Shell)。
  • 优点:便于调试,直接在本地看到输出。
  • 缺点:客户端与集群需保持网络连接,否则作业会中断。
Cluster 模式
  • Driver 在集群中的某个 Worker 节点运行:适用于生产环境。
  • 优点:作业提交后可断开客户端连接,提高可靠性。
  • 缺点:调试不便,日志需通过 Web UI 查看。

4. 快速部署

步骤 1:下载并解压 Spark
wget https://downloads.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz
tar -zxvf spark-3.3.2-bin-hadoop3.tgz
cd spark-3.3.2-bin-hadoop3
步骤 2:配置环境变量

编辑conf/spark-env.sh(如果不存在,复制模板cp conf/spark-env.sh.template conf/spark-env.sh):

export JAVA_HOME=/path/to/java
export SPARK_MASTER_HOST=master-node-ip
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=2g  # 每个Worker可用内存
export SPARK_WORKER_CORES=2    # 每个Worker可用CPU核心数
步骤 3:配置 Worker 节点

编辑conf/slaves(如果不存在,复制模板cp conf/slaves.template conf/slaves),添加 Worker 节点 IP:

worker1-ip
worker2-ip
...
步骤 4:启动集群
# 在Master节点上执行
sbin/start-all.sh# 等价于分别启动Master和Worker
sbin/start-master.sh
sbin/start-slaves.sh
步骤 5:查看 Web UI

访问http://master-node-ip:8080查看集群状态。

5. 提交应用程序

Client 模式示例
./bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://master-node-ip:7077 \--executor-memory 1g \--total-executor-cores 2 \examples/jars/spark-examples_2.12-3.3.2.jar \100

7. 优缺点

优点
  • 轻量级:无需额外依赖,部署简单。
  • 快速启动:相比 YARN,资源分配更直接。
  • 内置支持:Spark 原生支持,无需额外配置。
缺点
  • 功能有限:相比 YARN,缺乏多租户支持和细粒度资源隔离。
  • 调度简单:仅支持 FIFO 和公平调度,不支持更复杂的资源模型。
  • 生产环境建议:大型集群建议使用 YARN 或 Kubernetes。

总结

Standalone 模式适合快速搭建测试环境或小规模生产集群,提供了 Spark 最基本的集群管理能力。核心是理解 Master、Worker、Executor 和 Driver 的角色分工,以及 Client/Cluster 两种部署模式的区别。对于大规模生产环境,建议考虑更成熟的资源管理器(如 YARN)。

http://www.xdnf.cn/news/6157.html

相关文章:

  • 最大公约数JAVA
  • CK-S654-PA60一拖四分体式半导体电子货架专用RFID读写器|读码器接线使用说明
  • <论文>(微软)避免推荐域外物品:基于LLM的受限生成式推荐
  • “天神之眼”计算平台的算力设计(预计500-1000 TOPS)
  • 认识Docker/安装Docker
  • C及C++的SOAP协议库
  • 相关行业发展趋势写一个爬虫程序
  • 力扣3337. 字符串转换后的长度 II随笔
  • 2024年全国青少年信息素养大赛-算法创意实践C++ 华中赛区(初赛)历年真题
  • HTML5 浮动(Float)详解
  • 上海OA系统哪家好?厂商有哪些?
  • 如何在终端/命令行中把PDF的每一页转换成图片(PNG)
  • 从0开始学linux韦东山教程第三章问题小结(4)
  • 易学探索助手-个人记录(十)
  • redis 缓存穿透,缓存击穿,缓存雪崩
  • VCS X-PROP建模以及在方针中的应用
  • 利用vba替换word中多个表格,相邻单元格的文字
  • 用Array.from实现创建一个1-100的数组
  • 探索自我重复的奇妙之旅--递归
  • 最小区域法求平面度及八种算法思路
  • AI降重率工具推荐:提升论文原创度的利器
  • windows文件共享另一台电脑资源管理器网络文件夹无法找到机器
  • AI Agent开发第66课-彻底消除RAG知识库幻觉-带推理的RAG
  • 设计模式(9)——创建型模式之工厂方法
  • FlashInfer - SparseAttention(稀疏注意力)只计算部分有意义的注意力连接,而非全部 token 对
  • x-IMU matlab zupt惯性室内定位算法
  • 微服务调试问题总结
  • 数据预处理之数据平滑处理详解
  • 学习黑客蓝牙技术详解
  • 在K8S集群中部署EFK日志收集