基于Spark3.3.4版本,实现Standalone 模式高可用集群部署

news2024/11/27 0:25:45

目录

一、环境描述

二、部署Spark 节点

2.1 下载资源包

2.2 解压

2.3 配置

2.3.1 配置环境变量

2.3.2 修改workers配置文件

2.3.3 修改spark.env.sh文件

2.3.4 修改spark-defaults.conf

2.4 分发

2.5 启动服务

2.5.1 启动zookeeper

2.5.2 启动hdfs

2.5.3 启动spark

2.6 测试

2.6.1 测试HA主备切换

2.6.2 测试Spark调度和计算功能


一、环境描述

系统环境描述:本教程基于CentOS 8.0版本虚拟机

Hadoop ha 集群环境说明:

机器节点信息:

Spark 集群环境说明:

机器节点信息:

注意: Spark Standalone 模式本身不依赖Hadoop,只是这里我需要使用hdfs,而且集群高可用模式也需要使用到Zookeeper,所以这里我会启动Zookeeper和hdfs,不需要启动Yarn 调度层了,可以不启动Yarn。

二、部署Spark 节点

2.1 下载资源包

Spark 包下载地址:

Index of /dist/spark/spark-3.3.4 (apache.org)

注意:需要和Hadoop体系的版本要保持一致,我这里的Hadoop是3.3.4版本,所以,我的Spark 版本也需要是3.3.4版本。

2.2 解压

tar -zxvf spark-3.3.4-bin-hadoop3.tgz

2.3 配置

可以参考官网,自己跟着官网自己学着部署,官网是最官方的,最正确的方式,官网参考地址:

Spark 独立模式 - Spark 3.3.4 文档 (apache.org)

2.3.1 配置环境变量

# 进入配置文件
vim /etc/profile
# 添加SPARK_HOME环境变量
export SPARK_HOME=/usr/local/spark-3.3.4-bin-hadoop3

2.3.2 修改workers配置文件

#重命名文件
mv workers.template workers
# 进入文件编辑
vim workers
# 添加worker节点
node3
node4

2.3.3 修改spark.env.sh文件

# 进入config目录
cd spark-3.3.4-bin-hadoop3/conf
# 重命名配置文件
mv spark-env.sh.template spark-env.sh
# 修改配置信息
vim spark-env.sh
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.4/etc/hadoop
export SPARK_MASTER_HOST=master # 因为我这里部署的是HA模式,所以在master节点,这里配置的是master,在node1节点,这里就是node1
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORKER_CORES=4
export SPARK_WORKER_MEMORY=4g

2.3.4 修改spark-defaults.conf

# 进入config目录
cd spark-3.3.4-bin-hadoop3/conf
# 重命名配置文件
mv spark-defaults.conf.template spark-defaults.conf
# 修改配置信息
vim spark-defaults.conf

spark.deploy.recoveryMode       ZOOKEEPER
spark.deploy.zookeeper.url      node2:2181,node3:2181,node4:2181
spark.deploy.zookeeper.dir      /spark
# 开启spark的日期记录功能
spark.eventLog.enabled	true
#创建spark日志路径,待会儿要创建
spark.eventLog.dir	hdfs://mycluster/spark-logs

spark.history.fs.logDirectory  hdfs://mycluster/spark-logs
spark.yarn.jars  hdfs://mycluster/work/spark_lib/jars/*

2.4 分发

将配置好的spark-3.3.4-bin-hadoop3 分发到其他服务器

# 分发spark 包 
scp -r /usr/local/spark-3.3.4-bin-hadoop3/ node1:/usr/local/
scp -r /usr/local/spark-3.3.4-bin-hadoop3/ node3:/usr/local/
scp -r /usr/local/spark-3.3.4-bin-hadoop3/ node4:/usr/local/
# 分发环境变量文件(记得到各自的服务器执行 source /etc/profile 使配置生效)
scp -r /etc/profile node1:/etc/profile
scp -r /etc/profile node3:/etc/profile
scp -r /etc/profile node4:/etc/profile

2.5 启动服务

2.5.1 启动zookeeper

# 启动zookeeper (需要分别启动)
zkServer.sh start

2.5.2 启动hdfs

start-dfs.sh start

2.5.3 启动spark

# 进入spark命令目录
/usr/local/spark-3.3.4-bin-hadoop3/sbin
# 启动服务
./start-all.sh
# 启动node1的master
./start-master.sh

接着验证一下,启动的服务是不是按照我们配置的那样:

检验下master节点,看下是否有Master进程:

发现有了,那证明主节点启动起来了

接着验证下node3、node4,看下是否有Worker进程:

我们从上图中发现,node3,node4节点,分别有Worker进程了,说明集群部署成功了。

最后检查下node1节点,是不是有Master进程:

Ok,我们现在发现已经启动了两个Master进程了,一个在master节点,一个在node1节点。

我们可以通过Spark UI页面看下信息,访问http://master:8080

接着访问http://node1:8080

我们发现,node1节点的状态是standby状态

到此,我们Spark Stanalone模式HA就算部署成功了

2.6 测试

2.6.1 测试HA主备切换

为了验证主备切换的情况,我们可以把活跃(ALIVE)的主节点kill掉,观察之前备用(StandBy)的节点是否会做切换,升级为主节点:

# 查看master进程编号
jps
# kill -9 pid

kill掉了master节点的Master进程,看下是否切换到node1的Master中

从上图中可以看到,Master进程切换到了node1,状态为ALIVE状态,证明HA起到了作用,验证完成。

2.6.2 测试Spark调度和计算功能

# 提交jar包到集群
bin/spark-submit --master spark://master:7077,node1:7077 --class org.apache.spark.examples.SparkPi  /usr/local/spark-3.3.4-bin-hadoop3/examples/jars/spark-examples_2.12-3.3.4.jar 100000

从以上图片中我们可以看到,提交的任务进入到了Spark 集群调度中,且已经在运行了,整个部署到此结束。

今天基于Spark3.3.4版本,实现Standalone 模式高可用集群部署的相关内容就分享到这里,可以关注Spark专栏《Spark》,后续不定期分享相关技术文章。如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

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

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

相关文章

视频融合平台LntonCVS视频监控汇聚平台:构建多元接入与智能管理的安防新生态

一、视频融合平台概述 视频融合平台支持多种协议和设备类型的接入,包括GB28181、Onvif、RTSP、RTMP、海康SDK、Ehome、大华SDK、宇视SDK等。它能够统一整合和管理来自不同品牌、不同协议的视频资源,构建视频数据资源池,并通过视频资源目录为…

zemax默认函数评价设定规则

--转自挑衅冰雪 矩形阵列: 系统波前不能使用像差系数表示,系统中包含非圆形通光孔径的情况(如矩形,椭圆)。 高斯求积: 具有环形光瞳和旋转对称系统 矩形阵列评价函数操作数要远大于高斯求积 可先用高斯…

【HarmonyOS NEXT】设置组件不同状态下的样式

属性 名称 参数类型 描述 stateStyles StateStyles 设置组件不同状态的样式。 从API version 9开始,该接口支持在ArkTS卡片中使用。 StateStyles接口说明 从API version 9开始,该接口支持在ArkTS卡片中使用。只支持通用属性。 状态名称 类型 必…

智能名片小程序源码系统 销售名片+企业商城 前后端分离+源代码包+搭建部署教程

系统概述 在当今数字化快速发展的时代,传统的商务交流方式逐渐显露出其局限性。为了满足企业和个人更加高效、便捷地展示和推广自身的需求,智能名片小程序源码系统应运而生。这一系统的开发旨在为用户提供一个集销售名片和企业商城于一体的综合性平台&a…

迷你小风扇哪个品牌好?迷你小风扇前十名公开揭晓!

随着夏日的炎热袭来,迷你小风扇成为了许多人随身携带的清凉利器。无论是在办公室、户外活动,还是在旅行途中,迷你小风扇都以其小巧便携、强劲风力和持久续航的优势,迅速俘获了大批用户的喜爱。然而,市面上迷你小风扇品…

RabbitMQ 相关概念

引言 什么是消息中间件 消息是指在应用间传送的数据,包含文本字符串、JSON等。消息队列中间件(MQ)指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型…

11.6.k8s实战-节点扩缩容

目录 一,需求描述 二、集群缩容-节点下线 1,节点下线案例说明 2,查看现有节点 3,查看所有名称空间下的pod ​编辑4,驱逐下线节点的pod 5,驱逐后再次查看pod 6,驱逐pod后再次查看节点信息…

了解Java的LinkedBlockingQueue

了解Java的LinkedBlockingQueue LinkedBlockingQueue是一个基于链接节点的有界阻塞队列。它实现了BlockingQueue接口,可以在多线程环境中安全地进行插入、移除和检查操作。LinkedBlockingQueue的容量可以在创建时指定,如果未指定,则默认容量…

为什么动态代理接口中可以不加@Mapper注解

为什么动态代理接口中可以不加Mapper注解 如下图: 我们上面的UserMapper上面没有加Mapper注解,按道理来说UserMapper这个类应该是注入不到IOC容器里面的,但是为什么我们程序的运行效果仍然是正常的呢?这是因为你的启动类上加了m…

机械产品数字样机通用要求

以下参:国家标准 GB/T26100-2010《 机械产品数字样机通用要求》 数字样机 (Digital Mock-Up,DMU) 对机械产品整机或具有独立功能的子系统的数字化描述,这种描述不仅反映了产品对象的几何属性,还至少在某一领域反映了产品对象的功能和性能。…

建筑工地通常那种考勤机好用?

建筑工地通常那种考勤机好用? 大量从乡村前往城市的务工者,所从事的多为建筑工程类行业,此种行业对学历与技能的要求不高,而工资水平倒也尚可,正因如此才吸引了众多劳动者。那要怎样管好工地上的项目呢?首要…

雷军-2022.8小米创业思考-10-高效率模型:便宜有好货;产品好,价格厚道,公司盈利;爆品模式,分摊成本;资金库存快速周转;铁人三项,硬件,新零售,互联网

第十章 高效率模型 小米方法论 “铁人三项”的商业模式 完整的“小米模式”。这种模式有很多反直觉的地方,需要跟“便宜无好货”等很多固有观念做斗争。有些讽刺的是,小米模式天生就是为实现“便宜有好货”而奋斗。 效率是小米模式的基石&#xff0c…

2024年618购物狂欢节买什么最超值!618不可错过的好物清单!

618年中大促再度来临。对于购物爱好者来说,这无疑是一个不容错过的购物盛宴。那么,在这个618,哪些好物值得你重点关注呢?我特地整理了一份推荐清单,这些产品不仅经过我的亲身体验,更以其出色的实用性和高性…

Linux ubuntu安装pl2303USB转串口驱动

文章目录 1.绿联PL2303串口驱动下载2.驱动安装3.验证方法 1.绿联PL2303串口驱动下载 下载地址:https://www.lulian.cn/download/16-cn.html 也可以直接通过CSDN下载:https://download.csdn.net/download/Axugo/89447539 2.驱动安装 下载后解压找到Lin…

MySQL中的客户端选项(三)

默认情况下,LOAD DATA的LOCAL功能是否可用取决于MySQL客户端库在编译时是否启用了该功能。 当只给出--local-infile(不带值)时,它启用LOCAL数据加载。当给出--local-infile0时,它禁用LOCAL数据加载。当给出--local-in…

深圳比创达|EMI电磁干扰行业:从挑战到机遇的蜕变

在当今科技日新月异的时代,电磁干扰(EMI)已成为影响电子设备性能和稳定性的重要因素。EMI电磁干扰行业因此应运而生,致力于研究和解决电磁干扰问题,确保电子设备的正常运行。 一、EMI电磁干扰行业面临的挑战 随着电子…

告别盲目投放,Xinstall全方位监测App广告效果

在移动互联网高速发展的今天,App广告已成为品牌与消费者沟通的重要桥梁。然而,如何确保广告投放的精准性和效果性,成为广告主们关注的焦点。在这个数据驱动的时代,Xinstall以其专业的App广告效果统计功能,为广告主们提…

一图看懂华为云CodeArts API 7大特性,带你玩转一站式API

华为云CodeArts API是API全生命周期一体化协作平台 ,支持开发者高效实现API设计、API开发、API测试、API托管、API运维、API变现的一站式体验。以API契约为锚点,CodeArts API保证了API各阶段数据高度一致,为开发者提供友好易用的API全流程端到…

汇编语言程序设计 - 将当前目录下文件 FIE10.TXT 的所有小写字母改为大写字母,然后拷贝到当前目录文件 FILE20.TXT。

80x86汇编题目 题目描述:编写一个程序,将当前目录下文件 FIE10.TXT 的所有小写字母改为大写字母,然后拷贝到当前目录文件 FILE20.TXT。 思路: 1,分别打开两个文件,保存文件句柄 2,读取FILE1…

超级实用!20张中国农业地理地图

原文链接https://mp.weixin.qq.com/s?__bizMzUyNzczMTI4Mg&mid2247674489&idx3&sn9548f799c3af85f5dc697d8bcbe79841&chksmfa777544cd00fc52a303b67605652304900eecc56b187a5483461488b3215417efb21e4a6b33&token1445576002&langzh_CN&scene21#we…