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

Spark任务提交流程

1. yarn-client

在这里插入图片描述

  1. Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯,申请启动ApplicationMaster;

  2. 随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster的功能相当于一个ExecutorLaucher(加载器),只负责向ResourceManager申请Executor内存;

  3. ResourceManager接到ApplicationMaster的资源申请后会分配Container,然后ApplicationMaster在资源分配指定的NodeManager上启动Executor进程;

  4. Executor进程启动后向ResourceManager发送心跳,向Driver反向注册,Executor全部注册完成后,Driver开始执行main函数

  5. 之后执行到action算子时,触发一个job,并根据宽依赖开始划分Stage,每个stage生成对应的TaskSet,之后将Task分发到各个Executor上执行,执行完毕释放资源。

以运行词频统计WordCount为例,提交命令如下:

[xiaokang@hadoop01 ~]$ /opt/software/spark-3.0.1/bin/spark-submit\
--master yarn \ #运行yarn
--deploy-mode client \ #部署模式client
--driver-memory 512m \ #为driver分配的内存大小
--executor-memory 512m \ #每个executor的内存大小
--executor-cores 1 \ #每个executor 1核
--num-executors 2 \ #集群的executor个数
--queue default \
--class cn.itcast.spark.start.SparkSubmit \ 
hdfs://node01:8020/spark/apps/spark-day02_2.11-1.0.0.jar \
/datas/wordcount.data \
/datas/swcy-client

2. yarn-cluster

在这里插入图片描述

  1. 任务提交后会和ResourceManager通讯,申请启动ApplicationMaster;

  2. 随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster就是Driver;

  3. Driver启动后向ResourceManager申请Executor内存,ResourceManager接到ApplicationMaster的资源申请后会分配Container,然后在合适的NodeManager上启动Executor进程;

  4. Executor进程启动后会向ResourceManager发送心跳,向Driver反向注册;

  5. Executor全部注册完成后,Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task分发到各个Executor上执行。

以运行词频统计WordCount为例,提交命令如下:

[xiaokang@hadoop01 ~]$ /opt/software/spark-3.0.1/bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-momery 512m \
--executor-memory 512m \
--executor-cores 1 \
--num-executors 2 \
--queue default \
--class cn.itcast.spark.start.SparkSubmit \ 
hdfs://node01:8020/spark/apps/spark-day02_2.11-1.0.0.jar \
/datas/wordcount.data \ 
/datas/swcy-cluster

3. YARN-client与YARN-cluster的不同之处

  1. YARN-client模式,Driver运行在本地机器上;
    YARN-cluster模式,Driver运行在YARN集群的某个NodeManager节点上;

  2. YARN-client模式会导致本地机器负责Spark任务的调度,所以网卡流量会激增;
    YARN-cluster模式没有流量激增的问题;

  3. YARN-client的Driver运行在本地,通常来说本地机器和YARN集群不在同一个机房,所以说性能不会很好;
    YARN-cluster模式下,Driver和YARN集群运你在同一个机房内,性能上来说会好一点。

相关文章:

Spark任务提交流程

1. yarn-client Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯,申请启动ApplicationMaster; 随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster的…...

python相对路径与绝对路径

9.1 Python 绝对路径与相对路径 - 知乎 (zhihu.com) 目录 1. 绝对路径 1.1 概念 1.2 用绝对路径打开文件 1.2 相对路径 1.3 python路径表示的斜杠问题 1. 绝对路径 1.1 概念 绝对路径 指完整的描述文件位置的路径。绝对路径就是文件或文件夹在硬盘上的完整路径。 在 Win…...

SPSS如何进行基本统计分析之案例实训?

文章目录 0.引言1.描述性分析2.频数分析3.探索分析4.列联表分析5.比率分析 0.引言 因科研等多场景需要进行数据统计分析,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对基本…...

Python项目实战篇——常用验证码标注和识别(需求分析和实现思路)

前言:验证码识别和标注是现在网络安全中的一个重要任务,尤其是在一些电商平台和在线支付等场景中,验证码的安全性至关重要。本文将介绍如何使用Python实现常用的验证码标注和识别,以便为自己的项目提供参考。 一、需求分析 1、验证…...

MySQL基础(六)多表查询

多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,…...

零死角玩转stm32中级篇3-SPI总线

本篇博文目录: 一.基础知识1.什么是SPI2.SPI和IIC有什么不同3.SPI的优缺点4.SPI是怎么实现通信的5.SPI 数据传输的步骤6.SPI菊花链7.通过SPI实现数据的读和写 二.STM32F103C8T6芯片SPI协议案例代码 一.基础知识 1.什么是SPI SPI(Serial Peripheral Interface&#…...

顺序表功能实现(入手版详解)

🍉博客主页:阿博历练记 📖文章专栏:数据结构与算法 🚚代码仓库:阿博编程日记 🌹欢迎关注:欢迎友友们点赞收藏关注哦 文章目录 🍓前言✨顺序表🔍1.顺序表的整体…...

Java 中的线程是什么,如何创建和管理线程-下(十三)

书接上文 CompletableFuture CompletableFuture 是 Java 8 中新增的类,提供了更为强大的异步编程支持。它可以将多个异步任务组合成一个整体,并且可以处理异常情况。 例如,可以使用 CompletableFuture 来实现异步任务的串行执行&#xff1…...

为什么我的Windows 10 便签不支持更改字体?

Windows便签是一款常用的记录工具,可以帮助我们快速记录一些重要的信息。在使用Windows便签时,如果你想要更好地呈现你的信息,可以通过设置字体来达到这个效果。本文将介绍Windows便签字体设置的相关知识,希望对你有所帮助。 1、打…...

野火STM32电机系列(六)Cubemx配置ADC规则和注入通道

前文已经配置了GPIO、编码器 本节讲解CubeMXADC规则和注入通道 本文adc注入通道采用定时器触发,因此在上文定时器配置的基础上进行 常规信号(温度等)使用带DMA的常规通道连续采样 注入采样由定时器触发,采集电机三相电流&…...

预制菜,巨头们的新赛场

俗话说“民以食为天”,饮食对于大众的重要性自然是无需赘述。然而,随着生活节奏的加快,越来越多年轻人没有时间和精力去烹制菜肴,这也是外卖行业持续火热的重要原因之一。尽管如此,随着消费者健康意识的持续提升&#…...

英语语法第一章之英语语法综述

英语的任何句型基本都可以翻译成 什么怎么样 ,在这里什么就是我们常说的主语,而怎么样就是我们常说的谓语; 可能有些小伙伴会反问,不是主谓宾吗?别急等我慢慢讲解 在这里谓语也有很有多的不同的动作 可以独立完成的动作 句型&am…...

ChatGPT被淘汰了?Auto-GPT到底有多强

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。 说Auto-GPT淘汰了ChatGPT了,显然是营销文案里面的标题党。毕竟它还是基于ChatGPT的API,某种意义只是基于ChatGPT能力的应用。但最近,Auto…...

unity NGUI使用方法

基本用法 很多基本模块比如按钮、slider等都能从Prefab中直接拖拽到场景中实现,但都需要有一个Collider(Prefab已经自带) 因为不仅是UI,所有带有Collider的游戏物体都能接收到OnClick, OnPress这样的事件——前提是需…...

软件测试技术(五)软件测试流程

软件测试流程 软件测试流程如下: 测试计划测试设计测试执行 单元测试集成测试确认测试系统测试验收测试回归测试验证活动 测试计划 测试计划由测试负责人来编写,用于确定各个测试阶段的目标和策略。这个过程将输出测试计划,明确要完成的测…...

Redis缓存穿透和雪崩

Redis缓存穿透和雪崩 Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题…...

【C++】set和map的使用

对于STL容器来说,有很多相似的功能,所以这里主要将与之前不同的功能说清楚 文章目录 1.对于set与map的简单理解2. setinsert迭代器遍历countmultisetinsertfindcount 3. mapinsert与迭代器的使用统计水果次数 operator []operator[]的实现理解对整体的拆…...

大学生学java编程的就业前景怎么样?我来聊聊自己的见解

今天兴哥想跟大家分享一个话题,就是学java到底好不好找工作。因为我发现很多粉丝朋友,之前可能并不是从事IT行业的,然后想转行来做这一行,或者是有些大四即将面临毕业的老哥,可能大学没有好好学习吧,然后专…...

JavaScript全解析——canvas 入门(上)

●canvas 是 HTML5 新增的一个标签, 表示画布 ●canvas 也是 h5 的画布技术, 我们通过代码的方式在画布上描绘一个图像 canvas 标签 ●向进行 canvas 绘图, 首先我们先要了解到 canvas 标签 ●是 html5 推出的一个标签 <html> <head>... </head> <body&…...

vue 插槽的用法

Vue的插槽&#xff08;Slot&#xff09;是一种可以让父组件向子组件传递内容的机制。插槽可以让开发者将组件的结构和内容分离开来&#xff0c;从而实现更好的可维护性和复用性。 在Vue中&#xff0c;插槽通过 标签实现。具体用法如下&#xff1a; 单个插槽 在子组件中使用一…...

TimescaleDB Helm Charts 项目停止维护后的应对策略与迁移指南

1. 项目概述与背景如果你正在Kubernetes上寻找一种可靠、可扩展的方式来部署时序数据库&#xff0c;那么TimescaleDB的Helm Charts项目曾经是一个绕不开的选项。这个由Timescale官方维护的仓库&#xff0c;旨在为开发者提供一套标准化的、声明式的部署方案&#xff0c;让你能通…...

JSON数据高效处理:命令行工具jsoncut的查询、过滤与投影实战

1. 项目概述&#xff1a;一个专为JSON数据“瘦身”的利器在前后端开发、API接口调试、数据迁移或者日志分析的日常工作中&#xff0c;JSON格式的数据几乎无处不在。它结构清晰、易于阅读和解析&#xff0c;是现代数据交换的绝对主力。但随之而来的一个常见痛点就是&#xff1a;…...

程序员连夜带团队跑路,省了23万:这AI太贵,真的用不起了

好的&#xff0c;收到&#xff01;你说得对&#xff0c;之前的风格可能信息密度太高&#xff0c;有点“极客狂欢”的味道。 今天咱们换个姿势&#xff0c;用唠家常、说人话的方式&#xff0c;把5月11日AI圈最有趣、最魔幻的几件事儿聊明白。保证你在地铁上、蹲坑时&#xff0c;…...

嵌入式系统如何应对VR/AR的技术挑战:从硬件选型到系统优化

1. 虚拟现实与嵌入式系统的交汇点2016年&#xff0c;如果你在嵌入式系统开发圈子里&#xff0c;听到最多的词除了“物联网”&#xff0c;大概就是“虚拟现实”了。那一年&#xff0c;Oculus Rift消费者版正式发货&#xff0c;HTC Vive也刚刚上市&#xff0c;一股VR热潮席卷了科…...

刘教链|百万美刀的比特币:VanEck的预言与微策略的进化困境

BTC在8万刀附近磨了一周。就在市场踟蹰不前的时候&#xff0c;VanEck抛出一个大胆的预测[1]。一、VanEck的百万预言5月9日&#xff0c;VanEck的投资主管Matthew Sigel说了一番话。他认为比特币会在下一届美国总统任期结束前达到100万美刀[1]&#xff0c;算下来大概是2031年前后…...

从零构建AI智能体编排平台:TalonOS架构解析与实战指南

1. 项目概述&#xff1a;从零构建一个自主智能体编排平台如果你正在寻找一个能将多个AI智能体像交响乐团一样组织起来&#xff0c;协同完成复杂任务的解决方案&#xff0c;那么你很可能已经接触过或听说过TalonOS。这个项目&#xff0c;或者说这个愿景&#xff0c;代表了一种全…...

开源机械爪技术全解析:从结构设计到ROS集成开发指南

1. 项目概述与核心价值如果你是一名开发者&#xff0c;尤其是在开源社区里摸爬滚打过一阵子&#xff0c;那你肯定对“awesome-xxx”这类项目不陌生。它们通常是一个精心整理的列表&#xff0c;汇聚了某个特定技术领域或工具生态下的优质资源。今天要聊的这个fundgao/awesome-op…...

量子噪声对机器学习模型的影响与优化策略

1. 量子噪声与机器学习模型的复杂博弈在量子计算领域&#xff0c;噪声问题就像一位不请自来的客人&#xff0c;总是干扰着我们的计算过程。特别是在量子机器学习(QML)中&#xff0c;噪声的影响更为微妙且复杂。我最近使用Qiskit平台进行了一系列实验&#xff0c;试图揭示不同类…...

MCP协议专用Linter:mcp-lint工具的设计、规则与集成实践

1. 项目概述&#xff1a;一个为MCP协议量身定制的代码质量守护者 最近在折腾MCP&#xff08;Model Context Protocol&#xff09;相关的开发&#xff0c;发现一个挺有意思的项目&#xff1a; robert19001-cmyk/mcp-lint 。光看名字&#xff0c;你大概能猜到它是个代码检查工具…...

从STM32到华大HC32F460:手把手移植USB HOST MSC + FatFs R0.13c(含源码对比与避坑指南)

从STM32到华大HC32F460&#xff1a;USB HOST MSC与FatFs移植实战全解析 1. 迁移背景与核心挑战 对于长期使用STM32的嵌入式开发者而言&#xff0c;切换到华大半导体HC32F460系列MCU既是一次技术升级&#xff0c;也面临实际移植的挑战。USB HOST MSC&#xff08;Mass Storage Cl…...