Spark(25):Spark部署模式对比

news2024/11/18 0:00:36

目录

0. 相关文章链接

1. Spark支持的集群管理器

2. YARN 模式运行机制

2.1. YARN Cluster 模式

2.2. YARN Client 模式

3. Standalone 模式运行机制

3.1. Standalone Cluster 模式

3.2. Standalone Client 模式


0. 相关文章链接

 Spark文章汇总 

1. Spark支持的集群管理器

  • Standalone:独立模式,Spark 原生的简单集群管理器,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统,使用 Standalone 可以很方便地搭建一个集群; 
  • Hadoop YARN:统一的资源管理机制,在上面可以运行多套计算框架,如 MR、Storm 等。根据 Driver 在集群中的位置不同,分为 yarn client(集群外)和 yarn cluster(集群内部) 
  • Apache Mesos:一个强大的分布式资源管理框架,它允许多种不同的框架部署在其上,包括 Yarn。 
  • K8S : 容器式部署环境。 

        实际上,除了上述这些通用的集群管理器外,Spark 内部也提供了方便用户测试和学习的本地集群部署模式和 Windows 环境。由于在实际工厂环境下使用的绝大多数的集群管理器是 Hadoop YARN,因此我们关注的重点是 Hadoop YARN 模式下的 Spark 集群部署。

2. YARN 模式运行机制

2.1. YARN Cluster 模式

  1. 执行脚本提交任务,实际是启动一个 SparkSubmit 的 JVM 进程;
  2. SparkSubmit 类中的 main 方法反射调用 YarnClusterApplication 的 main 方法;
  3. YarnClusterApplication 创建 Yarn 客户端,然后向 Yarn 服务器发送执行指令:bin/java ApplicationMaster;
  4. Yarn 框架收到指令后会在指定的 NM 中启动 ApplicationMaster;
  5. ApplicationMaster 启动 Driver 线程,执行用户的作业;
  6. AM 向 RM 注册,申请资源;
  7. 获取资源后 AM 向 NM 发送指令:bin/java YarnCoarseGrainedExecutorBackend;
  8. CoarseGrainedExecutorBackend 进程会接收消息,跟 Driver 通信,注册已经启动的Executor;然后启动计算对象 Executor 等待接收任务;
  9. Driver 线程继续执行完成作业的调度和任务的执行;
  10. Driver 分配任务并监控任务的执行;

        注意:SparkSubmit、ApplicationMaster 和 CoarseGrainedExecutorBackend 是独立的进程;Driver 是独立的线程;Executor 和 YarnClusterApplication 是对象。 

2.2. YARN Client 模式

  1. 执行脚本提交任务,实际是启动一个 SparkSubmit 的 JVM 进程; 
  2. SparkSubmit 类中的 main 方法反射调用用户代码的 main 方法; 
  3. 启动 Driver 线程,执行用户的作业,并创建 ScheduleBackend; 
  4. YarnClientSchedulerBackend 向 RM 发送指令:bin/java ExecutorLauncher; 
  5. Yarn 框架收到指令后会在指定的 NM 中启动 ExecutorLauncher(实际上还是调用ApplicationMaster 的 main 方法); 
  6. AM 向 RM 注册,申请资源; 
  7. 获取资源后 AM 向 NM 发送指令:bin/java CoarseGrainedExecutorBackend; 
  8. CoarseGrainedExecutorBackend 进程会接收消息,跟 Driver 通信,注册已经启动的Executor;然后启动计算对象 Executor 等待接收任务 
  9. Driver 分配任务并监控任务的执行。

        注意:SparkSubmit、ApplicationMaster 和 YarnCoarseGrainedExecutorBackend 是独立的进程;Executor 和 Driver 是对象。 

3. Standalone 模式运行机制

Standalone 集群有2个重要组成部分,分别是:

  • Master(RM):是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责; 
  • Worker(NM):是一个进程,一个 Worker 运行在集群中的一台服务器上,主要负责两个职责,一个是用自己的内存存储 RDD 的某个或某些 partition;另一个是启动其他进程和线程(Executor),对 RDD 上的 partition 进行并行的处理和计算;

3.1. Standalone Cluster 模式

        在 Standalone Cluster 模式下,任务提交后,Master 会找到一个 Worker 启动 Driver。 Driver 启动后向 Master 注册应用程序,Master 根据 submit 脚本的资源需求找到内部资源至少可以启动一个 Executor 的所有 Worker,然后在这些 Worker 之间分配 Executor,Worker 上的 Executor 启动后会向 Driver 反向注册,所有的 Executor 注册完成后,Driver 开始执行 main 函数,之后执行到 Action 算子时,开始划分 Stage,每个 Stage 生成对应的 taskSet,之后将 Task 分发到各个 Executor 上执行。

3.2. Standalone Client 模式

        在 Standalone Client 模式下,Driver 在任务提交的本地机器上运行。Driver 启动后向Master 注册应用程序,Master 根据 submit 脚本的资源需求找到内部资源至少可以启动一个Executor 的所有 Worker,然后在这些 Worker 之间分配 Executor,Worker 上的 Executor 启动后会向 Driver 反向注册,所有的 Executor 注册完成后,Driver 开始执行 main 函数,之后执行到 Action 算子时,开始划分 Stage,每个 Stage 生成对应的 TaskSet,之后将 Task 分发到各个 Executor 上执行。 


注:其他Spark相关系列文章链接由此进 ->  Spark文章汇总 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/756810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫——urllib_微博cookie登陆

cookie登陆适用场景: 适用场景:数据采集的时候,需要绕过登陆,然后进入到某个页面 # 适用场景:数据采集的时候,需要绕过登陆,然后进入到某个页面 import urllib.requesturl https://weibo.cn/7…

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面 MobaXterm软件介绍串口终端运行命令MobaXterm访问开发板 MobaXterm软件介绍 MobaXterm是一款增强型终端软件,对于Windows平台上的程序员、网络管理员和开发者是一款极其优秀的工…

数据库 --- mysql(03)-- mysql字符集、表操作(01)

MYSQL 1、mysql字符集 (1)简介: MySQL字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念: 字符集(CHARACTER)是一套编码校对规则(CO…

Spark(24):Spark内核概述

目录 0. 相关文章链接 1. Spark核心组件 1.1. Driver 1.2. Executor 2. Spark通用运行流程概述 0. 相关文章链接 Spark文章汇总 1. Spark核心组件 1.1. Driver Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。Dr…

基于SSM的新生报到系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

USB接口种类知多少?一起来温故一下吧!

前言 USB接口类型有很多,如下图所示,到底哪个是哪个?都怎么称呼? 本人也是对各种USB接口一知半解,趁着今天周末,整理了下USB接口的种类,相信也有很多跟我一样对其了解不够深的朋友,那…

测试开发必备技能-Jmeter二次开发

01 概述 为什么需要做二次开发?JMeter作为一款开源的性能、接口测试工具,有时候无法满足我们工作的需要,一般体现在:协议不支持、没有相应数据处理功能等。 一般这种情况下,我们可以做的选择有: 第一种找…

4.Java基本数据类型

Java 的两大数据类型: 基本数据类型引用数据类型 1. 八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型 byte: byte 数据类型是8位、有符号的,以二进制补码表…

Python 列表 extend()函数使用详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 extend函数使用详解 1、可以接收的参数1.1、添加字符串1.2、添加元组1.3、添加字…

ts学习(一):基础篇1

旨在记录! 这篇人都学废了,本想记录常用类型,越学越多,每一个都很重要… 一、string: 字符串类型二、number: 数字类型三、boolean: 布尔值四、array:数组五、tuple: 元组六、字面量七、object:对象八、any: 任意类型九、unknown:…

Nacos知识掌握【快速入门】

通过上面的调用图会发现,除了微服务,还有一个组件是服务注册中心,它是微服务架构非常重要 的一个组件,在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能: \1. 服务发现: 服务注…

第十章:PSPNet——金字塔场景解析网络

0.摘要 场景解析对于无限制的开放词汇和多样化的场景是具有挑战性的。在本文中,我们通过金字塔池化模块和提出的金字塔场景解析网络(PSPNet),利用全局上下文信息的能力,通过基于不同区域的上下文聚合,来处理…

五种最新优化算法(SWO、ZOA、EVO、KOA、GRO)求解23个基准测试函数(含参考文献及MATLAB代码)

一、五种算法简介 (1)蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快&a…

Leetcode 43 字符串相乘

Leetcode43字符串相乘 题解1(按位计算) 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整…

Ansible 自动化运维工具(完善版)

目录 Ansible概述 Ansible特点 Ansible应用 1、使用者 2、Ansible工具集合 3、作用对象 Ansible的搭建 环境 ansible主机 1、ansible 2、Ansible-doc Ansible模块 1.command模块 2.shell模块 3.raw模块 Ansible概述 Ansible是最近非常火的一款开源运维自动化工具…

Verdi分析有限状态机

Verdi平台包括最先进的结构可视化和分析工具,其中,nTrace用于源代码,nWave用于波形,nSchema用于原理图/逻辑图,nState用于有限状态机(FSM)。本节将对nState的使用进行介绍。 为了简单起见&#…

软件测试(测试用例 )—— 写用例无压力

软件测试——用例篇 一、概念 测试用例的基本概念: 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素 。 主要步骤: 测试…

企业数字化营销怎么做?企业数字化营销系统怎么选择?

数字化营销是在不改变原有营销本质的前提下,借助数字化平台,把营销集成在系统或者说平台,通过平台的整合发力,改变传统营销压力及规避一些营销困难,实现数据留痕平台,用数据反哺运营与营销,让营…

jdk动态代理案例和实现原理

📢📢📢📣📣📣 哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝 一位上进心十足的【Java ToB端大厂…

visio插入mathtype保存时报错“DOS共享冲突”解决方案

软件版本 软件版本VisioMicrosoft Visio 专业版2019WordMicrosoft Office LTSC 专业增强版 2021MathType7.4.10.53WindowsWindows 10 家庭中文版 22H2 19045.3208 现象 无论是从Word直接“粘贴”到Visio或从Visio“插入→对象”插入“MathType 7.0 Equation”,在…