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

相关推荐
不吃洋葱.11 小时前
Bean.
java·开发语言
我星期八休息11 小时前
深入理解跳表(Skip List):原理、实现与应用
开发语言·数据结构·人工智能·python·算法·list
蒋星熠12 小时前
如何在Anaconda中配置你的CUDA & Pytorch & cuNN环境(2025最新教程)
开发语言·人工智能·pytorch·python·深度学习·机器学习·ai
合作小小程序员小小店12 小时前
机器学习介绍
人工智能·python·机器学习·scikit-learn·安全威胁分析
虫小宝12 小时前
返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
分布式·架构·rabbitmq
JavaEdge在掘金12 小时前
掌握Spring IoC容器和Bean作用,轻松实现依赖注入!
python
We....12 小时前
Java分布式编程:RMI机制
java·开发语言·分布式
€81112 小时前
Java入门级教程17——利用Java SPI机制制作验证码、利用Java RMI机制实现分布式登录验证系统
java·开发语言·java spi机制·远程传输数据
2301_8153577013 小时前
parameterType和@Param注解的区别
java·开发语言·数据库
tyatyatya13 小时前
MATLAB中进行视觉检测入门教程
开发语言·matlab·视觉检测