Spark---基于Standalone模式提交任务

Standalone模式两种提交任务方式

一、Standalone-client提交任务方式

1、提交命令

./spark-submit --master spark://mynode1:7077  
--class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 100

或者

./spark-submit --master spark://mynode1:7077 
--deploy-mode client  
--class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 100

2、执行原理图解

1)、执行流程

1、client模式提交任务后,会在客户端启动Driver进程。

2、Driver会向Master申请启动Application启动的资源

3、Master收到请求之后会在对应的Worker节点上启动Executor

4、Executor启动之后,会注册给Driver端,Driver掌握一批计算资源

5、Driver端将task发送到worker端执行。worker将task执行结果返回到Driver端。

2)、总结

client模式适用于测试调试程序。Driver进程是在客户端启动的,这里的客户端就是指提交应用程序的当前节点。在Driver端可以看到task执行的情况。生产环境下不能使用client模式,是因为:假设要提交100个application到集群运行,Driver每次都会在client端启动,那么就会导致客户端100次网卡流量暴增的问题。client模式适用于程序测试,不适用于生产环境,在客户端可以看到task的执行和结果

二、Standalone-cluster提交任务方式

1、提交命令

./spark-submit --master spark://mynode1:7077 
--deploy-mode cluster
--class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 100

2、执行原理图解

1)、执行流程

1、cluster模式提交应用程序后,会向Master请求启动Driver

2、Master接受请求,随机在集群一台节点启动Driver进程

3、Driver启动后为当前的应用程序申请资源

4、Driver端发送task到worker节点上执行

5、worker将执行情况和执行结果返回给Driver端

2)、总结

Driver进程是在集群某一台Worker上启动的,在客户端是无法查看task的执行情况的。假设要提交100个application到集群运行,每次Driver会随机在集群中某一台Worker上启动,那么这100次网卡流量暴增的问题就散布在集群上。

  • 总结Standalone两种方式提交任务,Driver与集群的通信包括:

1. Driver负责应用程序资源的申请

2. 任务的分发。

3. 结果的回收。

4. 监控task执行情况。

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

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

相关文章

给数据库查询结果添加一个额外的自增编号

1、在mysql数据库可以执行的sql SELECT( i : i 1 ) num,M.* FROMuser M,( SELECT i : 0 ) AS ID GROUP BYM.ID ORDER BYM.create_time SELECT (i :i 1) 是为了生成自增的序列号字段 SELECT i : 0 是为了将i进行初始化每次查询的序列号都会从1开始进行排序生成序列号 在…

go sync.map源码解读

此源码理解仅为个人理解,如有错误欢迎指出 sync.map的数据结构主要包含四个字段 一个互斥锁,readonly,dirty,和miss 从读写两个方面来讲这几个变量 readonly其实就是有bool值的dirty,底层结构都是map readonly的读更新不会上锁&#xff0c…

在springboot中实现WebSocket协议通信

前面介绍了使用netty实现websocket通信,有些时候,如果我们的服务并不复杂或者连接数并不高,单独搭建一个websocket服务端有些浪费资源,这时候我们就可以在web服务内提供简单的websocket连接支持。其实springboot已经支持了websock…

20230511 Windows Ubuntu vscode remote-ssh 连接配置

参考 : VSCode SSH 连接远程ubuntu Linux 主机 VSCode通过Remote SSH扩展连接到内网Ubuntu主机 Ubuntu 安装 sudo apt-get install openssh-server vscode: 安装remote-ssh 插件 连接到服务器IP 免密登录的公钥密钥传递用filezillaUbuntu 和 Windows 文件互传 …

PMP对项目工程师有用吗?

一、什么是项目工程师? 项目工程师是指在各个领域负责技术操作、设计、管理以及评估能力的人员。他们通常担当项目的实施和执行角色,在开发或控制类项目中发挥重要作用。有时,项目工程师的称号还可以用来表示在某个领域取得专业资格的人员。…

深入理解路由协议:从概念到实践

路由技术是Internet得以持续运转的关键所在,路由是极其有趣而又复杂的课题,永远的话题。 SO:这是一个解析路由协议的基础文章。 目录 前言路由的概念路由协议的分类数据包在网络中的路由过程理解路由表的结构路由器关键功能解析 前言 在互联…

PTA-字符串的连接

本题要求实现一个函数&#xff0c;将两个字符串连接起来。 函数接口定义&#xff1a; char *str_cat( char *s, char *t ); 函数str_cat应将字符串t复制到字符串s的末端&#xff0c;并且返回字符串s的首地址。 裁判测试程序样例&#xff1a; #include <stdio.h> #inc…

SQL Server数据库自动备份方法

要编写一个自动备份 SQL Server 数据库的脚本&#xff0c;可以使用 SQL Server Management Studio (SSMS) 或者 Transact-SQL (T-SQL) 脚本。以下是一个简单的 T-SQL 脚本示例&#xff0c;该脚本将数据库备份到指定的文件路径&#xff1a; -- 设置要备份的数据库名称 DECLARE D…

求解Beamforming-SOCP(CVX求解)

时间&#xff1a;2023年11月23日14:00:16&#xff1a; 直接上代码&#xff08;辛苦两天才改出来的&#xff09; clear all; K 4; %user number N4; %base station number var1e-9; H []; %initialize H matrix for i1:Kh 1/sqrt(2*K)*mvnrnd(zeros(N,1),eye(N),1)1i/sqrt(2*…

【C++】泛型编程 ⑫ ( 类模板 static 关键字 | 类模板 static 静态成员 | 类模板使用流程 )

文章目录 一、类模板使用流程1、类模板 定义流程2、类模板 使用3、类模板 函数 外部实现 二、类模板 static 关键字1、类模板 static 静态成员2、类模板 static 关键字 用法3、完整代码示例 将 类模板 函数声明 与 函数实现 分开进行编码 , 有 三种 方式 : 类模板 的 函数声明…

数据结构 二叉树

二叉树 二叉树是n个有限元素的集合&#xff0c;该集合或者为空、或者由一个称为根&#xff08;root&#xff09;的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成&#xff0c;是有序树。当集合为空时&#xff0c;称该二叉树为空二叉树。在二叉树中&#xff0c;一个…

【8】Spring Boot 3 集成组件:安全组件 spring security【官网概念篇】

目录 【8】Spring Boot 3 集成组件&#xff1a;安全组件 spring securitySpring Security 简介先决条件引入依赖身份验证密码存储密码存储历史DelegatingPasswordEncoder密码存储格式密码加解密类自定义密码存储 体系结构 ArchitectureServlet 过滤器DelegatingFilterProxyFilt…

第二十章 多线程

20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类&#xff0c;从这个类中实例化的对象代表线程&#xff0c;程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式&#xff1a; public void run(){} 20.1让线程循…

mysql命令导出表结构和数据

MySQL是一款流行的关系型数据库管理系统&#xff0c;是许多公司和组织使用的首选数据库。在日常使用中&#xff0c;我们经常需要对数据库进行备份和复制&#xff0c;因此必须了解如何导出表结构和表数据。以下是使用MySQL命令导出表结构和表数据的方法。 1. 导出表结构 mysql…

AnalyticDB for PostgreSQL 实时数据仓库上手指南

AnalyticDB for PostgreSQL 实时数据仓库上手指南 2019-04-016601 版权 本文涉及的产品 云原生数据仓库 ADB PostgreSQL&#xff0c;4核16G 50GB 1个月 推荐场景&#xff1a; 构建的企业专属Chatbot 立即试用 简介&#xff1a; AnalyticDB for PostgreSQL 提供企业级数…

iOS合并代码后解决冲突

合并主干和分支代码后有冲突&#xff0c;xcode无法运行&#xff0c;如下图&#xff1a;文件显示不了&#xff0c;项目名也显示不了 解决冲突&#xff1a; 1.选中左边目录栏的项目名。鼠标右键--> Show in Finder 2.选中项目文件 xxxx.xcodeproj。鼠标右键--> 显示包内容…

【python学习】中级篇-绘制图形:turtle库

turtle库是Python的一个绘图库&#xff0c;它提供了一个简单的绘图窗口&#xff0c;可以让你通过控制一个小海龟在屏幕上移动来绘制图形。 以下是一个简单的turtle库用法示例&#xff1a; 在这个示例中&#xff0c;我们首先导入了turtle库&#xff0c;然后创建了一个画布和一个…

【创建一个C++线程需要传入几个参数?】

在C++中,创建一个std::thread对象时,你可以传递多个参数,但至少需要一个参数:线程将要执行的函数。这个函数可以是一个普通函数、一个类的成员函数,或者一个可调用对象(如lambda表达式)。除了要执行的函数之外,你还可以传递任何数量的参数,这些参数将被转发到线程函数…

idea手动导入maven包

当maven仓库中没有包时&#xff0c;我们需要手动导入jar到maven项目中 1.这里的maven设置成你自己安装的maven 2.查看pom.xml文件中maven&#xff0c;以下面为例 <dependency><groupId>com.jdd.pay</groupId><artifactId>mapi-sdk-v3</artifactId&…

零基础小白如何自学 Python 步骤和知识点?

Python是一种流行的编程语言&#xff0c;被广泛用于Web开发、数据分析、机器学习、人工智能等领域。如果你是零基础的Python初学者&#xff0c;不必担心&#xff0c;以下是一些建议&#xff0c;帮助你开始Python编程之旅。 黑马程序员python教程&#xff0c;8天python从入门到…