2024.1.3 Spark on Yarn部署方式与工作原理

目录

Spark集群类型有以下几种:

Spark的部署方式有以下几种:

[Spark on YARN的部署方式有两种:client模式和cluster模式。](#Spark on YARN的部署方式有两种:client模式和cluster模式。)

Spark底层的工作原理,执行流程


Spark集群类型有以下几种:

  1. Standalone模式:这是Spark自带的一种集群管理模式,可以在单个机器上启动一个Spark集群,适用于开发和测试环境。
  2. YARN模式:这是一种分布式资源管理器,可以与Hadoop集成,将Spark作为YARN应用程序运行在Hadoop集群上。
  3. Mesos模式:这是一种通用的集群管理器,可以与多种应用程序框架集成,包括Spark。Mesos可以在多个机器上共享资源,并根据需要分配资源给不同的应用程序。
  4. Kubernetes模式:这是一种开源的容器编排平台,可以用于部署和管理容器化的应用程序,包括Spark。Kubernetes可以自动管理容器的调度和资源分配。

Spark的部署方式有以下几种:

  1. Standalone模式:在Standalone模式下,Spark集群由一个主节点和多个工作节点组成。主节点负责调度任务和资源管理,工作节点负责执行任务。这种部署方式适用于小规模的集群。

  2. YARN模式:YARN是Hadoop的资源管理器,可以用来管理Spark集群的资源。在YARN模式下,Spark作为一个YARN应用程序运行在YARN集群上。这种部署方式适用于大规模的集群。

  3. Mesos模式:Mesos是一个通用的集群管理器,可以用来管理多种类型的应用程序。在Mesos模式下,Spark作为一个Mesos框架运行在Mesos集群上。这种部署方式也适用于大规模的集群。

  4. Kubernetes模式:Kubernetes是一个开源的容器编排平台,可以用来管理容器化的应用程序。在Kubernetes模式下,Spark作为一个Kubernetes应用程序运行在Kubernetes集群上。这种部署方式适用于容器化的环境。

  5. Amazon EMR模式:Amazon EMR是亚马逊提供的一种托管式的大数据处理服务,可以用来快速、简便地部署Spark集群。在Amazon EMR模式下,Spark作为一个EMR应用程序运行在EMR集群上。这种部署方式适用于亚马逊云环境。

Spark on YARN的部署方式有两种:client模式和cluster模式。

Client部署方式: Driver进程运行在你提交程序的那台机器上

优点: 将运行结果和运行日志全部输出到了提交程序的机器上,方便查看结果

缺点: Driver进程和Yarn集群可能不在同一个集群中,会导致Driver和Executor进程间进行数据交换的时候,效率比较低

使用: 一般用在开发和测试中

Cluster部署方式: Driver进程运行在集群中某个从节点上

优点: Driver进程和Yarn集群在同一个集群中,Driver和Executor进程间进行数据交换的时候,效率比较高

缺点: 需要去18080或者8088页面查看日志和运行结果

使用: 一般用在生产环境使用

两种部署方式区别就是Driver运行的地方不一样,在哪提交的就在哪启动

Spark底层的工作原理,执行流程

用户写完代码 - 使用submit命令提交 - 在哪提交就在哪启动deiver进程 - 进程是JVM进程 - 创建Sparkcontext - 用py4j把python转成java - driver向 master申请资源 - master使用先进先出规则来分配资源 - driver拿到资源就去找worker ,通知worker启动Executor进程,准备干活 - 之后driver开始加载代码,确定每个任务需要分配给executor进行执行 - deiver通知executor开始执行任务 - executor开始真正的干活,执行任务时发现有大量的python函数,而executor是jvm的,所以他会调用服务器的python解释器来执行 - driver持续监控executor的工作状态,类似心跳机制 - 任务完成后,driver通知master回收资源,释放自己

相关推荐
寻星探路4 分钟前
【算法专题】哈希表:从“两数之和”到“最长连续序列”的深度解析
java·数据结构·人工智能·python·算法·ai·散列表
@zulnger7 分钟前
python 学习笔记(闭包)
笔记·python·学习
SHolmes18548 分钟前
Python all函数 判断是否同时满足多个条件
java·服务器·python
inksci8 分钟前
Python 中使用 SQL 连接池
服务器·数据库·python
子午12 分钟前
【2026原创】中草药识别系统实现~Python+深度学习+模型训练+人工智能
人工智能·python·深度学习
洛克大航海13 分钟前
Python 在系统 Windows 和 Ubuntu 中创建虚拟环境
windows·python·ubuntu·虚拟环境
ZEERO~14 分钟前
@dataclass的作用
开发语言·windows·python
南行*22 分钟前
C语言Linux环境编程
linux·c语言·开发语言·网络安全
Morwit24 分钟前
Qt qml创建c++类的单例对象
开发语言·c++·qt
几道之旅25 分钟前
pytdx能否下载期货数据呢?
python