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

目录

一、环境描述

二、部署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-logsspark.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.mzph.cn/web/29767.shtml

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

相关文章

归并排序 (递归实+非递归)

前言 归并排序是一种逻辑很简单,但是实现有点难度的排序,尤其是非递归,对于区间的把握更是需要一点逻辑的推导,但是没有关系,轻松拿捏 归并排序gif 归并排序单趟实现 1,创建tmp数组, 2&#xff…

javaWeb项目-在线考试系统详细功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、Java简介 Java语…

「Qt Widget中文示例指南」如何实现一个滑动条(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 滑动条示例展示了如…

轻轻松松上手的LangChain学习说明书

本文为笔者学习LangChain时对官方文档以及一系列资料进行一些总结~覆盖对Langchain的核心六大模块的理解与核心使用方法,全文篇幅较长,共计50000字,可先码住辅助用于学习Langchain。 一、Langchain是什么? 如今各类AI…

昇思25天学习打卡营第1天|快速入门

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) 本节通过MindSpore的API来快速实现一个简单的深度学习模型。若想要深入了解MindSpore的使用方法,请参阅各节最后提供的参考链接。 import mindspore from mindspore import nn from …

项目训练营第一天

项目训练营第一天 springboot后端环境搭建 1、首先需要找文章下载好tomcat、JDK、maven、mysql、IDEA。(软件下载及环境变量配置略) 2、在下载好的IDEA中,选择新建spring initial项目,选定java web,即可新建一个spri…

win11 之下载安装 allure

1. 下载 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.25.0/allure-commandline-2.25.0.zip 2. 配置系统变量 path 下添加解压后的bin目录 3. 验证是否安装成功 输入 allure

Mac 安装HomeBrew(亲测成功)

1、终端安装命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"执行后,没有安装git,会先安装,安装后再执行一下命令。 2、根据中文选择源安装 3、相关命令 查看版本号&a…

python flask使用flask_migrate管理数据库迁移

🌈所属专栏:【Flask】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

一篇文章了解常用排序算法

排序 文章目录 排序直接(插入)排序InsertSort思想实现方法: 希尔排序ShellSort(可过OJ)思想预排序gap的作用整体代码 选择排序SelectSort思想完整代码 堆排序HeapSort(可过OJ)思想大根堆向下调整 完整代码 冒泡排序BubbleSort快速排序(快排&a…

Unity URP 仿原神角色渲染过程记录

想学一下NPR渲染,话不多说,先搞一只芙再说,边做边学 一、资源整理 终于是把东西全都集齐了 1、纹理设置 首先要把将Diffuse和Lightmap的压缩改成"无"或"高质量"。 法线贴图的纹理类型改成"法线贴图"。 除颜…

HarmonyOS 角落里的知识 —— 状态管理

一、前言 在探索 HarmonyOS 的过程中,我们发现了许多有趣且实用的功能和特性。有些总是在不经意间或者触类旁通的找到。或者是某些开发痛点。其中,状态管理是ArkUI开发非常核心的一个东西,我们进行了大量的使用和测试遇到了许多奇奇怪怪的问…

Android平台下VR头显如何低延迟播放4K以上超高分辨率RTSP|RTMP流

技术背景 VR头显需要更高的分辨率以提供更清晰的视觉体验、满足沉浸感的要求、适应透镜放大效应以及适应更广泛的可视角度,超高分辨率的优势如下: 提供更清晰的视觉体验:VR头显的分辨率直接决定了用户所看到的图像的清晰度。更高的分辨率意…

001.VMware Workstation Pro虚拟平台安装

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

《数字图像处理-OpenCV/Python》第16章:图像的特征描述

《数字图像处理-OpenCV/Python》第16章:图像的特征描述 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第16章:图像的特征描述 特征通常是针对图像中的目标或…

快排(霍尔排序实现+前后指针实现)(递归+非递归)

前言 快排是很重要的排序,也是一种比较难以理解的排序,这里我们会用递归的方式和非递归的方式来解决,递归来解决是比较简单的,非递归来解决是有点难度的 快排也称之为霍尔排序,因为发明者是霍尔,本来是命名…

基于Spring Boot+VUE旧物置换网站

1前台首页功能模块 旧物置换网站,在系统首页可以查看首页、旧物信息、网站公告、个人中心、后台管理等内容,如图1所示。 图1系统功能界面图 用户注册,在用户注册页面通过填写用户名、密码、姓名、性别、头像、手机、邮箱等内容进行用户注册&…

FlinkCDC介绍及使用

CDC简介 什么是CDC? cdc是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的 变动(包括数据或数据表的插入,更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件以供其它服…

IPv4的报头详解

1.ipv4的报头: 注意:ipv4的报头长度共有20个字节,数据包通过ipv4协议传输后,会进行封装和解封装: 封装:tcp/ip五层参考模型 应用层网络层传输层数据链路层物理层 网络层:tcp/udp 传输层&#…

【odoo】如何开启开发者模式,开启有什么作用?

概要 在 Odoo 中,开发者模式(Developer Mode)是一种专门为开发和调试提供的模式。启用开发者模式可以让开发人员访问到更多的功能和信息,从而更方便地进行模块开发、调试和测试。 启用方式(主要两种) 1.设…