大数据 - Spark系列《十四》- spark集群部署模式
Spark系列文章:
大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客
大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客
大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客
大数据 - Spark系列《四》- Spark分布式运行原理-CSDN博客
大数据 - Spark系列《五》- Spark常用算子-CSDN博客
大数据 - Spark系列《六》- RDD详解-CSDN博客
大数据 - Spark系列《七》- 分区器详解-CSDN博客
大数据 - Spark系列《八》- 闭包引用-CSDN博客
大数据 - Spark系列《九》- 广播变量-CSDN博客
大数据 - Spark系列《十》- rdd缓存详解-CSDN博客
大数据 - Spark系列《十一》- Spark累加器详解-CSDN博客
大数据 - Spark系列《十二》- 名词术语理解-CSDN博客
大数据 - Spark系列《十三》- spark调度流程(运行过程)-CSDN博客
目录
Spark 程序分布式运行模式
14.1.1 🥙本地测试模式
14.1.2 StandAlone模式
集群安装步骤
spark-submit脚本方式提交
14.1.3 Yarn 模式:client vs cluster模式
1. 简介
2. 🥙 client模式
🍠Cluster和client模式的区别
14.1.4 Mesos/k8s
Mesos模式:
Kubernetes模式:
Spark 程序分布式运行模式
当运行 Spark 程序时,可以选择不同的部署模式,具体取决于集群管理系统和资源调度器。以下是常见的 Spark 程序分布式运行模式:
-
本地测试模式
-
Standalone模式(Client/cluster): spark内置的运行集群
-
Yarn 模式(Client/cluster):在yarn上运行
-
Mesos/k8s : 在mesos集群或者k8s集群上运行
14.1.1 🥙本地测试模式
Idea中
val conf = new SparkConf().setAppName("doe").setMaster("local[*]")
虚拟机环境中 (安装包解压即可)
[root@doe01 bin]# ./spark-shell
Welcome to____ __/ __/__ ___ _____/ /___\ \/ _ \/ _ `/ __/ '_//___/ .__/\_,_/_/ /_/\_\ version 3.3.2/_/
scala> val rdd = sc.makeRDD(List(1,2,3,4,5,6) , 2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at makeRDD at <console>:23
14.1.2 StandAlone模式
Spark standalone是一个类似于yarn的资源调度集群,属于spark自己的集群管理 , 规模小, 不通用 ;它构建一个基于 Master+Slaves 的资源调度集群,Spark 任务提交给 Master运行。生产中一般不使用.
集群安装步骤
1. 上传安装包解压
2. 修改conf下的spark-env.sh
export JAVA_HOME=/opt/apps/jdk1.8
export HADOOP_CONF_DIR=/opt/apps/hadoop-3.1.1/
export YARN_CONF_DIR=/opt/apps/hadoop-3.1.1/
3. 修改conf下的workers文件,添加worker节点
hadoop01
hadoop02
hadoop03
4. 将安装包分发到其他节点
Scp -r
5. 修改系统环境变量
vi /etc/profileexport SPARK_HOME=/opt/apps/spark-3.3.2-bin-hadoop3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$FLUME_HOME/bi
n:$SQOOP_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
6. 修改sbin下的指令名
sbin目录下的start-all.sh和stop-all.sh和Hadoop的指令冲突
修改成start-spark.sh stop-spark.sh
7. 启动standalone集群
sbin/start-spark.sh
Jps 可观察到Master worker 进程
在浏览器上访问 : http://hadoop02:8080
此界面是standalone集群的监控界面
而每一个application都有一个自己的监控页面
spark-submit脚本方式提交
将自己的程序打包
注意代码中不用指定运行模式和appName
// conf.setAppName("").setMaster()
上传到虚拟机 , 然后将程序提交到 spark自己的集群上
./spark-submit --master spark://hadoop02:7077 \--name test_cf \--executor-cores 2 \--executor-memory 2G \--class com.doit.day0201.CommonFriend_HDFS \/opt/testDemo/Spark_module-1.0-SNAPSHOT.jar
14.1.3 Yarn 模式:client vs cluster模式
1. 简介
YARN(Yet Another Resource Negotiator)是Apache Hadoop的资源管理器,Spark可以作为YARN应用程序在Hadoop集群上运行。在YARN模式下,Spark应用程序可以以两种方式运行:
-
Client模式:Driver程序运行在提交作业的客户端机器上。
-
Cluster模式:Driver程序运行在YARN集群中的一个容器内,由YARN资源管理器负责资源调度和任务执行。
2. 🥙 client模式
如果部署模式为 client,程序jar包可以放在本地磁盘, 程序初始化是在本地的SparkSubmit中的Driver中进行的
# cluster模式完整示例
# Usage: spark-submit [options] <app jar | python file | R file> [app arguments]
# 注意,cluster模式时,spark-submit先请求standalone获取资源启动driver,然后driver要请求standalone获取资源启动executor(需要jar包)
# 要提前将jar包放到hdfs
bin/spark-submit --master spark://doit01:7077 \
--deploy-mode cluster \
--class cn.doitedu.spark.WordCount \
--name "帅无边男人的帅无边程序" \
--driver-memory 1G \
--executor-memory 2G \
--executor-cores 2 \
--total-executor-cores 6 \
hdfs://doit01:8020/sparkjars/sparktest.jar hdfs://doit01:8020/sparktest/wordcount/input hdfs://doit01:8020/sparktest/wordcount/output3
运行起来后,集群中会出现如下独立的进程:
如果部署模式是cluster,DriverWrapper是在某个Worker节点上运行的!所以不使用提交作业机器的内存来做程序的初始化!
🍠
Cluster和client模式的区别
区别在于Driver端创建的位置不同。工作过程中用cluster模式
14.1.4 Mesos/k8s
-
Mesos模式:
在Mesos模式下,Mesos作为资源管理器分配资源给Spark应用程序。Mesos负责在集群中启动和管理Executor容器,并分配资源给这些Executor容器以执行Spark任务。
-
Kubernetes模式:
在Kubernetes模式下,Kubernetes作为容器编排平台管理Spark应用程序的资源。Kubernetes启动和管理Executor容器,并根据Spark应用程序的需求动态调整资源。与Mesos模式类似,Kubernetes模式也提供了一种灵活且可扩展的方式来运行Spark作业。
相关文章:

大数据 - Spark系列《十四》- spark集群部署模式
Spark系列文章: 大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…...

考研C语言复习进阶(2)
目录 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 4. 函数指针 5. 函数指针数组 6. 指向函数指针数组的指针 7. 回调函数 8.三步辗转法 9. 指针和数组笔试题解析 10. 指针笔试题 指针的主题,我们在初级阶段的《指…...

设计模式学习笔记 - 设计原则与思想总结:1.总结回顾面向对象、设计原则、编程规范、重构技巧等知识点
概述 对前面的内容的回顾,温故而知新,包括:面向对象、设计原则、规范与重构三个模块的内容。 1.代码质量评判标准 如何评价代码质量的高低? 代码质量的评价具有很强的主观性,描述代码质量的词汇也有很多,…...

WPF图表库LiveCharts的使用
这个LiveCharts非常考究版本,它有非常多个版本,.net6对应的是LiveChart2 我这里的wpf项目是.net6,所以安装的是这三个,搜索的时候要将按钮“包括愈发行版”打勾 git:https://github.com/beto-rodriguez/LiveCharts2?…...
第十三届蓝桥杯省赛C++ C组《全题目+题解》
填空题一般都是找规律题目,耐下心来慢慢分析即可。 第一题《排列字母》 【问题描述】 小蓝要把一个字符串中的字母按其在字母表中的顺序排列。 例如,LANQIAO 排列后为AAILNOQ。 又如,GOODGOODSTUDYDAYDAYUP 排列后为AADDDDDGGOOOOPSTUUYYY。…...

Linux——线程池
目录 线程池的概念 线程池的优点 线程池的实现 【注意】 线程池的线程安全 日志文件的实现 线程池的概念 线程池也是一种池化技术,可以预先申请一批线程,当我们后续有任务的时候就可以直接用,这本质上是一种空间换时间的策略。 如果有任…...

Linux:搭建ntp服务器
我准备两个centos7服务器 一个为主服务器连接着外网,并且搭建了ntp服务给其他主机同步 另外一个没有连接外网,通过第一台设备去同步时间 首先两个服务器都要安装ntp软件 yum -y install ntp 再把他俩的时间都改成别的 左侧的是主服务器,主…...

unity学习(57)——选择角色界面--删除角色2
1.客户端添加点击按钮所触发的事件,在selectMenu界面中增加myDelete函数,当点击“删除角色”按钮时触发该函数的内容。 public void myDelete() {string message nowPlayer.id;//string m Coding<StringDTO>.encode(message);NetWorkScript.get…...

Flutter:构建美观应用的跨平台方案
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

【深度学习模型移植】用torch普通算子组合替代torch.einsum方法
首先不得不佩服大模型的强大之处,在算法移植过程中遇到einsum算子在ONNX中不支持,因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法,但是该方法会…...

鸿蒙 Harmony 初体验
前言 看现在网上传得沸沸扬扬的鸿蒙,打算弄个 hello world 玩一下, 不然就跟不上时代的发展了 环境安装 我的环境 Windows 11 家庭中文版HarmonyOS SDK (API 9)DevEco Studio (3.1.1 Release)Node.js (16.19.1) 开发IDE下载 官方下载链接 配置 nodejs 这里帮…...

Jmeter+ant,ant安装与配置
1.ant含义 ant:Ant翻译过来是蚂蚁的意思,在我们做接口测试的时候,是可以用来做JMeter接口测试生成测试报告的工具 2.ant下载 下载地址:Apache Ant - Ant Manual Distributions download中选择ant 下载安装最新版zip文件 3.…...

【MySQL基础】MySQL基础操作三
文章目录 🍉1.联合查询🥝笛卡尔积 🍉2.内连接🥝查询单个数据🥝查询多个数据 🍉3.外连接🍉4.自连接🍉5.合并查询 🍉1.联合查询 🥝笛卡尔积 实际开发中往往数…...
【K8s】肿么办??Kubernetes Secrets并不是Secret哟!!
【K8s】肿么办??Kubernetes Secrets并不是Secret哟!! 目录 【K8s】肿么办??Kubernetes Secrets并不是Secret哟!!Kubernetes Secrets为什么不认为 Base64 编码是密文?问题出现了以下是几种加密 K8s Secrets 的选项。Bitnami Sealed Secrets 介绍Bitnami Sealed Secrets…...

数星星 刷题笔记 (树状数组)
依题意 要求每个点 x, y 的左下方有多少个星星 又因为 是按照y从小到大 给出的 所以 我们在计算个数的时候是按照y一层层变大来遍历的 因此我们在处理每一个点的时候 只需要看一下 当前的点有多少个点的x值比当前点小即可 树状数组的 操作模板 P3374 【模板】树…...

Windows→Linux,本地同步到服务器
适用背景: 用自己电脑修改代码,使用实验室/公司的服务器炼丹的朋友 优势: 本地 <--> 服务器,实时同步,省去文件传输的步骤 本地改 -> 自动同步到服务器 -> 服务器跑代码 -> 一键同步回本地ÿ…...

Pycharm连接远程服务器Anoconda中的虚拟环境
在配置远程解释器时,踩过一些坑,现在记录一下配置过程: 步骤1: 打开pycharm的File里面的Settings 里面的Project:你的项目名称目录下的Python Interpreter。 步骤二: 点击右上角的“add interpreter”,选择…...

无人机自动返航算法实现与优化
一、引言 随着无人机技术的快速发展,其在航拍、农业、救援等领域的应用越来越广泛。在这些应用中,无人机的自动返航功能显得尤为重要。一旦无人机失去控制或与遥控器失去连接,自动返航算法能够确保无人机安全返回起飞点,避免损失和…...
切面条-蓝桥杯?-Lua 中文代码解题第1题
切面条-蓝桥杯?-Lua 中文代码解题第1题 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么…...

WebRTC:真正了解 RTP 和 RTCP
介绍 近年来,通过互联网进行实时通信变得越来越流行,而 WebRTC 已成为通过网络实现实时通信的领先技术之一。WebRTC 使用多种协议,包括实时传输协议 (RTP) 和实时控制协议 (RTCP)。 RTP负责通过网络传输音频和视频数据,而RTCP负责…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...