大数据Spark(五十九):Standalone集群部署

文章目录

Standalone集群部署

一、节点划分

二、搭建Standalone集群

1、将下载好的Spark安装包上传解压

2、配饰spark-env.sh

3、配置workers

4、将配置好的安装包发送到node2、node3节点上

5、启动Standalone集群

三、提交任务测试


Standalone集群部署

Standalone 模式是 Spark 自带的资源调度系统,无需依赖外部集群管理器。在此模式下,集群角色包含主节点(Master)、工作节点(Worker)、Client组成。各角色作用如下:

  • Master节点:负责集群资源管理和任务调度。
  • Worker节点:负责执行具体的计算任务。
  • Client负责:向Standalone集群中提交任务。

一、节点划分

这里搭建Standalone集群选择一台Master和两台Worker以及一台Client,按照如下节点划分在各个节点上部署各个角色。

#Spark安装包中各个目录和文件作用如下 
[root@node1 software]# ll spark-3.5.5 
drwxr-xr-x bin:包含管理Spark的可执行脚本。 
drwxr-xr-x conf:包含Spark的配置模板文件。 
drwxr-xr-x data:包含示例应用程序所需的数据集,通常用于GraphX、MLlib和Streaming的示例。 
drwxr-xr-x examples:包含Spark的示例代码和JAR包,供用户参考和测试。 
drwxr-xr-x jars:存放Spark运行时所需的所有JAR包,包括Spark自身的JAR以及其依赖项。 
drwxr-xr-x kubernetes:包含与Kubernetes集成相关的资源和配置。 
-rw-r--r-- LICENSE:Spark的许可证文件,说明了软件的许可条款。 
drwxr-xr-x licenses:包含Spark所依赖的第三方库的许可证文件。 
-rw-r--r-- NOTICE:关于Spark的一些法律声明和通知。 
drwxr-xr-x python:包含PySpark(Spark的Python API)相关的文件和资源。 
drwxr-xr-x R:包含SparkR(Spark的R API)相关的文件和资源。 
-rw-r--r-- README.md:提供关于Spark的简要介绍和使用说明。 
-rw-r--r-- RELEASE:包含当前Spark版本的发布说明。 
drwxr-xr-x sbin:包含用于启动和停止Spark集群的脚本。 
drwxr-xr-x yarn:包含与Hadoop YARN集成相关的jar包。

二、搭建Standalone集群

1、将下载好的Spark安装包上传解压

将“spark-3.5.5-bin-hadoop3-scala2.13.tgz”上传至node1节点,进行解压并修改名称。

[root@node1 ~]# cd /software/ [root@node1 software]# tar -zxvf ./spark-3.5.5-bin-hadoop3-scala2.13.tgz 
[root@node1 software]# mv spark-3.5.5-bin-hadoop3-scala2.13 spark-3.5.5

#Spark安装包中各个目录和文件作用如下 
[root@node1 software]# ll spark-3.5.5 drwxr-xr-x bin:包含管理Spark的可执行脚本。 
drwxr-xr-x conf:包含Spark的配置模板文件。 
drwxr-xr-x data:包含示例应用程序所需的数据集,通常用于GraphX、MLlib和Streaming的示例。 
drwxr-xr-x examples:包含Spark的示例代码和JAR包,供用户参考和测试。 
drwxr-xr-x jars:存放Spark运行时所需的所有JAR包,包括Spark自身的JAR以及其依赖项。 
drwxr-xr-x kubernetes:包含与Kubernetes集成相关的资源和配置。 
-rw-r--r-- LICENSE:Spark的许可证文件,说明了软件的许可条款。 
drwxr-xr-x licenses:包含Spark所依赖的第三方库的许可证文件。 
-rw-r--r-- NOTICE:关于Spark的一些法律声明和通知。 
drwxr-xr-x python:包含PySpark(Spark的Python API)相关的文件和资源。 
drwxr-xr-x R:包含SparkR(Spark的R API)相关的文件和资源。 
-rw-r--r-- README.md:提供关于Spark的简要介绍和使用说明。 
-rw-r--r-- RELEASE:包含当前Spark版本的发布说明。 
drwxr-xr-x sbin:包含用于启动和停止Spark集群的脚本。 
drwxr-xr-x yarn:包含与Hadoop YARN集成相关的jar包。

2、配饰spark-env.sh

进入$SPARK_HOME/conf,配置spark-env.sh,配置如下内容:

[root@node1 ~]# cd /software/spark-3.5.5/conf/
[root@node1 conf]# mv spark-env.sh.template spark-env.sh
[root@node1 conf]# vim spark-env.sh
export SPARK_MASTER_HOST=node1
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=3g
export SPARK_WORKER_WEBUI_PORT=8081
  • SPARK_MASTER_HOST:必配项,master的ip。
  • SPARK_MASTER_PORT:提交任务的端口,默认7077。
  • SPARK_MASTER_WEBUI_PORT:Spark WebUI端口,默认8080。
  • SPARK_WORKER_CORES:每个worker从节点能够支配的core的个数,默认是对应节点上所有可用的core。
  • SPARK_WORKER_MEMORY:每个worker从节点能够支配的内存大小,默认1G。
  • SPARK_WORKER_WEBUI_PORT:worker WebUI 端口。

3、配置workers

进入$SPARK_HOME/conf,配置workers,写入node2、node3节点:

[root@node1 ~]# cd /software/spark-3.5.5/conf/
[root@node1 conf]# mv workers.template workers
[root@node1 conf]# vim workers
node2
node3

4、将配置好的安装包发送到node2、node3节点上

[root@node1 software]# cd /software/
[root@node1 software]# scp -r ./spark-3.5.5 node2:`pwd`
[root@node1 software]# scp -r ./spark-3.5.5 node3:`pwd`

5、启动Standalone集群

进入$SPARK_HOME/sbin,指定如下命令启动standalone集群。

[root@node1 software]# cd /software/spark-3.5.5/sbin
[root@node1 sbin]#./start-all.sh

注意:启动SparkStandalone集群的命令“start-all.sh”与启动HDFS集群的命令“start-all.sh”命令一样,这里不再单独配置Spark环境变量。

Standalone集群启动完成后,在浏览器输入“http://node1:8080”查看Spark Standalone集群信息。

 

注意:如果Standalone集群没有正常运行,可以通过查看各个节点的$SPARK_HOME/logs目录中的日志错误来解决。

三、提交任务测试

这里向Standalone集群中提交Spark Pi任务为例,来测试集群是否可以正常提交任务。向Standalone集群中提交任务需要准备Spark客户端。

Spark客户端主要就是向Spark集群中提交任务,只要一台节点上有Spark安装包,就可以向Spark集群中提交任务,这里在node4节点上单独再搭建Spark提交任务的客户端,只需要将Spark安装包解压放在node4节点即可。

[root@node4 ~]# cd /software/ 
[root@node4 software]# tar -zxvf ./spark-3.5.5-bin-hadoop3-scala2.13.tgz 
[root@node4 software]# mv ./spark-3.5.5-bin-hadoop3-scala2.13 spark-3.5.5

注意:任何一台Spark Standalone集群中的节点都可以作为客户端向Standalone集群中提交任务,这里只是将node4节点作为提交任务客户端后续向Standalone集群中提交任务。

在node4节点上向Standalone集群中提交任务命令如下:

[root@node4 ~]# cd /software/spark-3.5.5/bin/
[root@node4 bin]# ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.13-3.5.5.jar 100

任务提交后,可以看到向Standalone集群中提交任务并执行100个task,最终输出pi大致结果。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

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

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

相关文章

Feign异步模式丢失上下文问题

Feign异步模式丢失上下文问题 问题描述 当我们使用异步对我们代码进行操作优化时,代码中使用了RequestContextHolder去获取上下文的数据,当我们执行原来可以执行的业务时发现报了空指针异常或数据为空,这是为什么呢? 原理解释 …

JavaScript作用域和作用域链

在JavaScript中,作用域和作用域链是理解代码执行和变量访问的关键概念。它们决定了变量和函数在代码中的可见性和生命周期。 一、作用域(Scope) (一)什么是作用域? 作用域是在运行时代码中的某些特定部分…

人工智能的“歧视”:“她数据”在算法运行中隐形

纵观人类的发展史,每一次科技进步都将对性别平等产生深刻影响。尤其是当下,人们对于借助人工智能技术快速发展来弥合性别不平等寄予厚望。 但很多人没想过,人工智能技术本身是客观中立、不存在“算法歧视”“性别偏见的吗? 弗吉…

设备全生命周期管理:从采购到报废的数字化闭环方案

在当今数字化时代,企业对设备的管理已不再局限于简单的维护与修理,而是追求从采购到报废的全生命周期数字化闭环管理。易点易动设备管理系统,正是这一趋势下的佼佼者,它为企业提供了一套高效便捷的设备管理解决方案。 采购阶段&a…

React中useState中更新是同步的还是异步的?

文章目录 前言一、useState 的基本用法二、useState 的更新机制1. 内部状态管理2. 状态初始化3. 状态更新 三、useState 的更新频率与异步行为1. 异步更新与批量更新2. 为什么需要异步更新? 四、如何正确处理 useState 的更新1. 使用回调函数形式的更新2. 理解异步更…

FEKO许可证与其他电磁仿真软件的比较

在电磁仿真领域,众多软件工具竞相争艳,而FEKO软件及其许可证制度在其中独树一帜。本文将对比FEKO许可证与其他电磁仿真软件,突出FEKO在许可证方面的卓越性能与独特优势,帮助您做出明智的选择。 一、许可证成本与价值比较 相较于其…

绿色云计算:数字化转型与可持续发展的完美融合

目录 引言 绿色云计算的概念与定义 云计算的环境影响与绿色云计算的重要性 绿色云计算的技术实践与策略 绿色云计算的案例研究与最佳实践 绿色云计算的挑战与限制 绿色云计算的未来趋势与预测 结论与展望 引言 随着云计算技术的迅猛发展和广泛应用,其环境影…

在innovus中如何设置让信号线打上双孔

知识星球【芯冰乐】入口 为了让设计的芯片良率能得到显著提升,一般在绕线资源允许的情况下,我们会在尽可能多的signal线上打上双孔,然而在进行某个项目的时候,小编惊讶的发现,在数字的layout上一个双孔都没出现,这是为什么呢?今天就让小编分享一下这次新奇的发现; 经…

DevExpress GridControl 复选列实时获取选中状态的解决方案

问题核心分析 用户在使用 DevExpress GridControl 的复选列时遇到两个关键问题: 1.使用 CellValueChanged 事件需要点击其他列才会触发,无法实时响应勾选动作 2.使用 CheckedChanged 事件并调用 PostEditor() 会导致复选框无法选中 这主要是因为 DevExp…

数据一致性校验算法

数据完整性校验 在 数据录入、通信协议(CAN、LIN、Ethernet) 和 存储(Flash、EEPROM) 领域,数据校验(Error Checking) 是确保 数据完整性和正确性的关键技术 示例:当我们从互联网上…

101个α因子#9

((0 < ts_min(delta(close, 1), 5)) ? delta(close, 1) : ((ts_max(delta(close, 1), 5) < 0) ? delta(close, 1) : (-1 * delta(close, 1))))worldquant brain平台上调整后的语法&#xff1a; ((0 < min(close-ts_delay(close, 1), ts_delay(close, 1)-ts_delay(c…

国产视频转换LT6211UX:HDMI2.0转LVDS/MIPI芯片简介,支持4K60Hz

1. LT6211UX HDMI2.0信号输入 支持HDMI2.0b, HDMI1.4和DVI1.0 支持HDCP2.2和HDCP1.4 数据速率高达6Gbps 自适应接收机均衡 支持4k60Hz 支持的3D格式&#xff1a; 对于HDMI -> LVDS&#xff1a; 直接3D输出 2路2D L/R输出 对于HDMI -> MIPI&#xff1a; 框架包装&#x…

华三(H3C)IRF堆叠心跳的LACP MAD、BFD MAD和ARP MAD差异

华三&#xff08;H3C&#xff09;IRF堆叠心跳的三种MAD&#xff08;多主检测&#xff09;机制——LACP MAD、BFD MAD和ARP MAD在实现原理、组网要求及适用场景上存在显著差异。以下是三者的对比分析&#xff1a; 一、核心区别对比 特性LACP MADBFD MADARP MAD检测原理扩展LAC…

宿州金博学校开展防震演练:夯实安全根基,守护校园平安

5月13日上午9点30分&#xff0c;金博学校原本宁静的校园被一阵急促的警报声打破&#xff0c;一场精心筹备、紧张有序的防震演练正式开启。本次演练意义重大&#xff0c;旨在强化全体师生的防震减灾意识&#xff0c;提高大家在地震突发时的应急反应与自我保护能力。 紧急避险&am…

DAY29 超大力王爱学Python

知识点回顾 类的装饰器装饰器思想的进一步理解&#xff1a;外部修改、动态类方法的定义&#xff1a;内部定义和外部定义 作业&#xff1a;复习类和函数的知识点&#xff0c;写下自己过去29天的学习心得&#xff0c;如对函数和类的理解&#xff0c;对python这门工具的理解等&…

RabbitMQ ④-持久化 || 死信队列 || 延迟队列 || 事务

消息确认机制 简单介绍 RabbitMQ Broker 发送消息给消费者后&#xff0c;消费者处理该消息时可能会发生异常&#xff0c;导致消费失败。 如果 Broker 在发送消息后就直接删了&#xff0c;就会导致消息的丢失。 为了保证消息可靠到达消费者并且成功处理了该消息&#xff0c;…

python打卡训练营打卡记录day31

知识点回顾 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 作业&#xff1a;尝试针对之前的心脏病项目ipynb&#xff0c;将他按照今天的示例项目整理成规范的形式&#xff0c;思考下哪些部分可以未来复用。 心脏病项目目录 目录结构:heart/ ├── conf…

mac .zshrc:1: command not found: 0 解决方案

nano ~/.zshrc 使用自带的nano命令打开文件&#xff0c;修改后 Ctrl X 然后输入y 然后回车即可保存成功 一般情况下&#xff0c;不是常用这个命令&#xff0c;除非是遇到有问题的文件&#xff0c;才用&#xff0c; 例如 遇到下面的问题 /Users/xxli/.zshrc:1: command no…

uniapp生成的app,关于跟其他设备通信的支持和限制

以下内容通过AI生成&#xff0c;这里做一下记录。 蓝牙 移动应用&#xff08;App&#xff09;通过蓝牙与其他设备通信&#xff0c;是通过分层协作实现的。 一、通信架构分层 应用层&#xff08;App&#xff09; 调用操作系统提供的蓝牙API&#xff08;如Android的BluetoothA…

第50天-使用Python+Qt+DeepSeek开发AI运势测算

1. 环境准备 bash 复制 下载 pip install pyside6 requests python-dotenv 2. 获取DeepSeek API密钥 访问DeepSeek官网注册账号 进入控制台创建API密钥 在项目根目录创建.env文件: env 复制 下载 DEEPSEEK_API_KEY=your_api_key_here 3. 创建主应用框架 python 复制…