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回收资源,释放自己

相关推荐
星星法术嗲人9 分钟前
【Java】—— 集合框架:Collections工具类的使用
java·开发语言
爱写代码的小朋友15 分钟前
Python的几个高级特性
python
Eric.Lee202121 分钟前
数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall
python·深度学习·算法·目标检测·计算机视觉·数据集·螃蟹检测
黑不溜秋的22 分钟前
C++ 语言特性29 - 协程介绍
开发语言·c++
一丝晨光27 分钟前
C++、Ruby和JavaScript
java·开发语言·javascript·c++·python·c·ruby
天上掉下来个程小白29 分钟前
Stream流的中间方法
java·开发语言·windows
xujinwei_gingko40 分钟前
JAVA基础面试题汇总(持续更新)
java·开发语言
sp_wxf1 小时前
Lambda表达式
开发语言·python
Fairy_sevenseven1 小时前
【二十八】【QT开发应用】模拟WPS Tab
开发语言·qt·wps
蜡笔小新星1 小时前
Python Kivy库学习路线
开发语言·网络·经验分享·python·学习