Spark Standalone 部署

news2025/7/18 0:34:47

Spark Standalone 部署

  • 解压缩文件
  • 修改配置文件
  • 启动集群
    • Web UI 界面
    • 提交应用
    • 提交参数说明
  • 配置历史服务
    • 配置日志存储路径
    • 添加日志配置
    • 重启
    • 重新执行任务
    • 查看历史服务
  • 配置高可用(HA)
    • 集群规划
    • 停止集群
    • 启动 Zookeeper
    • 启动集群
    • 关闭集群
    • 关闭历史服务

解压缩文件

spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩在指定位置

tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module

在这里插入图片描述

cd /opt/module

在这里插入图片描述

改名 :

mv spark-3.0.0-bin-hadoop3.2 spark-3.0.0-standalone

在这里插入图片描述

修改配置文件

进入解压缩后路径的 conf 目录,修改 slaves.template 文件名为 slaves

mv slaves.template slaves

在这里插入图片描述

修改 slaves 文件,添加 worker 节点

vim slaves

内容 :

cpucode101
cpucode102
cpucode103

在这里插入图片描述

修改 spark-env.sh.template 文件名为 spark-env.sh

mv spark-env.sh.template spark-env.sh

在这里插入图片描述

修改 spark-env.sh 文件,添加 JAVA_HOME 环境变量和集群对应的 master 节点

在这里插入图片描述

vim spark-env.sh

内容 :

export JAVA_HOME=/opt/module/jdk1.8.0_212
SPARK_MASTER_HOST=cpucode101
SPARK_MASTER_PORT=7077

在这里插入图片描述

7077端口,相当于 Hadoop3 内部通信的 8020 端口,此处的端口需要确认自己的 Hadoop 配置

分发 spark-standalone 目录

xsync spark-standalone

在这里插入图片描述

启动集群

确保 Zookeeper 关闭

执行脚本命令:

./sbin/start-all.sh

在这里插入图片描述

查看三台服务器运行进程

jpsall

在这里插入图片描述

Web UI 界面

http://cpucode101:8080

在这里插入图片描述

提交应用

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://cpucode101:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10
  • –class : 执行程序的主类
  • –master spark://cpucode102:7077 独立部署模式,连接到Spark集群
  • spark-examples_2.12-3.0.0.jar 运行类所在的jar包
  • 数字10 : 程序的入口参数,用于设定当前应用的任务数量

在这里插入图片描述

执行任务时,会产生多个Java进程

jpsall

在这里插入图片描述

执行任务时,默认采用服务器集群节点的总核数,每个节点内存 1024M

在这里插入图片描述

提交参数说明

bin/spark-submit \
--class <main-class>
--master <master-url> \
... # other options
<application-jar> \
[application-arguments]
参数解释可选值举例
– classSpark程序中包含主函数的类
– masterSpark程序运行的模式(环境)模式:local[*]、spark://cpucode101:7077、 Yarn
– executor-memory 1G每个executor可用内存为1G符合集群内存配置即可,具体情况具体分析
– total-executor-cores 2所有 executor 使用的 cpu 核数为 2 个
– executor-cores每个 executor 使用的 cpu 核数
application-jar打包好的应用jar,包含依赖。这个URL在集群中全局可见。 如 : hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的path都包含同样的jar
application-arguments传给 main() 方法的参数

配置历史服务

当 spark-shell 停止后,就看不到历史任务的运行情况,所以要配置历史服务器记录任务运行情况

修改 spark-defaults.conf.template 文件名为 spark-defaults.conf

mv spark-defaults.conf.template spark-defaults.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6QJgogdb-1678108566828)(../../png/Standalone%E9%83%A8%E7%BD%B2/image-20230203141836141.png)]

配置日志存储路径

修改 spark-default.conf 文件

vim spark-default.conf

内容 :

spark.eventLog.enabled          true
spark.eventLog.dir              hdfs://cpucode101:8020/directory

在这里插入图片描述

需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在

myhadoop.sh start

在这里插入图片描述

创建 HDFS 文件夹

hadoop fs -mkdir /directory

在这里插入图片描述

http://cpucode101:9870

在这里插入图片描述

添加日志配置

修改 spark-env.sh 文件,

vim spark-env.sh
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://cpucode101:8020/directory 
-Dspark.history.retainedApplications=30"
  • 参数1:WEB UI 访问的端口号为 18080
  • 参数2:指定历史服务器日志存储路径
  • 参数3:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数

在这里插入图片描述

分发配置文件

xsync conf

在这里插入图片描述

重启

重启动 Hadoop 集群

./sbin/start-all.sh

在这里插入图片描述

重启动历史服务

./sbin/start-history-server.sh

在这里插入图片描述

重新执行任务

./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://cpucode101:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

在这里插入图片描述

查看历史服务

http://cpucode101:18080

在这里插入图片描述

配置高可用(HA)

当集群中只有一个 Master 节点,就存在单点故障问题

为了解决单点故障问题,需要在集群中配置多个Master节点,一旦处于活动状态的 Master 发生故障时,由备用 Master 提供服务,保证作业可以继续执行

高可用采用 Zookeeper 设置

高可用原理 :

在这里插入图片描述

集群规划

cpucode101cpucode102cpucode103
SparkMasterMaster
ZookeeperZookeeperZookeeper
WorkerWorkerWorker

停止集群

./sbin/stop-all.sh

在这里插入图片描述

启动 Zookeeper

zk.sh start

在这里插入图片描述

修改 spark-env.sh 文件添加如下配置

注释如下内容:

#SPARK_MASTER_HOST=cpucode101
#SPARK_MASTER_PORT=7077

添加如下内容:

#Master监控页面默认访问端口为8080,
#但是可能会和Zookeeper冲突,所以改成8989,
#也可以自定义,访问UI监控页面时请注意
SPARK_MASTER_WEBUI_PORT=8989

export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=cpucode101,cpucode102,cpucode103
-Dspark.deploy.zookeeper.dir=/spark"

在这里插入图片描述

分发配置文件

xsync conf/

在这里插入图片描述

启动集群

./sbin/start-all.sh

在这里插入图片描述

在这里插入图片描述

启动 cpucode102 的单独 Master 节点,此时 cpucode102 节点 Master 状态处于备用状态

ssh cpucode102 /opt/module/spark-3.0.0-standalone/sbin/start-master.sh

在这里插入图片描述

在这里插入图片描述

提交应用到高可用集群

在这里插入图片描述

./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://cpucode101:7077,cpucode102:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

在这里插入图片描述

同时 停止 cpucode101 的 Master 资源监控进程

sudo kill -9 10397

在这里插入图片描述

在这里插入图片描述

查看 cpucode102 的Master 资源监控 Web UI,稍等一段时间后,cpucode102 节点的 Master 状态

在这里插入图片描述

关闭集群

./sbin/stop-all.sh

在这里插入图片描述

关闭 cpucode102 主

ssh cpucode102 /opt/module/spark-3.0.0-standalone/sbin/stop-master.sh

在这里插入图片描述

关闭历史服务

./sbin/stop-history-server.sh

在这里插入图片描述

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

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

相关文章

Go语言使用Playwright自动化测试、录屏、执行js

Go版本的Playwright支持Chromium、Firefox和WebKit的Web自动化测试&#xff0c;兼容Windows、Linux和MacOS&#xff0c;默认支持headless无头模式&#xff0c;安装方便、绿色高效、兼容性强、运行速度快。 支持的主要功能有&#xff1a; 跨多个页面、域名和iframe的场景&#x…

什么led灯性价比高?家用led灯选哪种最好

人造灯具经过多年的发展&#xff0c;现在最为成熟的工艺就是led灯了&#xff0c;不仅有荧光灯高效节能、省电高亮的特点&#xff0c;而且光线可控性非常高&#xff0c;对于调光、提高光线柔和度等方面非常方便&#xff0c;保护眼睛更有效。 那么什么led灯性价比高呢&#xff0c…

JavaScript 高级5 :ES6

JavaScript 高级5 &#xff1a;ES6 Date: January 19, 2023 Sum&#xff1a;ES6新增语法、ES6内置对象扩展&#xff08;Array、String扩展方法、set数据结构&#xff09; 目标 能够说出使用let关键字声明变量的特点 能够使用解构赋值从数组中提取值 能够说出箭头函数拥有的…

基于SpringBoot的学生会管理系统 源码

StudentUnionManagementSystem 基于SpringBoot的学生会管理系统 源码 链接 目录StudentUnionManagementSystem介绍软件架构使用说明1.页面登录2.首页3.成员信息管理4.角色信息管理5.权限管理6.活动管理7.文件管理8.活动展示介绍 学生会管理系统 SpringBoot Mybatis-plus shir…

CentOS 7 怎样设置自动连接网络

作为 Linux 中的重要一员&#xff0c;CentOS 7 始终把安全放在第一位&#xff0c;开机以后并不会自动启动网络。而且&#xff0c;相比 Windows 下只需点击几下鼠标便能搞定配置&#xff0c;在 CentOS 7 中要想设置开机自动连接网络&#xff0c;简直可以说是需要具有“专业级水准…

手动实现 数组和链表

数组和链表示意图 目的 不用java标准库 自己时间 一个 arraylist 和 linked list 区别 数组 数组 支持 随机访问 可以立即访问 根据 第一个元素的位置&#xff0c; 推算出 第三个地方的位置 如下图所示&#xff0c;假设我们知道 头的位置是X 数组是 int类型 每个位置就是 …

Qt音视频开发21-mpv内核万能属性机制

一、前言 搞过vlc内核后又顺带搞了搞mpv内核&#xff0c;mpv相比vlc&#xff0c;在文件数量、sdk开发便捷性方面绝对占优势的&#xff0c;单文件&#xff08;可能是静态编译&#xff09;&#xff0c;不像vlc带了一堆插件&#xff0c;通过各种属性来set和get值&#xff0c;后面…

第十四届蓝桥杯三月真题刷题训练——第 5 天

目录 题目1&#xff1a;数的分解 题目描述 运行限制 代码&#xff1a; 题目2&#xff1a;猜生日 题目描述 运行限制 代码&#xff1a; 题目3&#xff1a;成绩分析 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码&#xff1a; 题目4&#xff1a;最大和…

Vue3做出B站【bilibili】 Vue3+TypeScript【快速入门一篇文章精通系列(一)前端项目案例】

本项目分为二部分 1、后台管理系统&#xff08;用户管理&#xff0c;角色管理&#xff0c;视频管理等&#xff09; 2、客户端&#xff08;登录注册、发布视频&#xff09; Vue3做出B站【bilibili】 Vue3TypeScript【快速入门一篇文章精通系列&#xff08;一&#xff09;前端项目…

vue3 拖拽 穿梭框

文章目录期望结果当前技术栈实现方法安装 sortablejs导入 sortablejs视图 通过 id 绑定 sortablejs 数据通过 data-xxx 自定义属性 挂载ts中 通过id获取dom 实现拖拽 getNewArr函数通过自定义属性对数据做处理以下是全部代码官网链接下面是文档UsageOptionsgroup optionsort op…

代码随想录之哈希表(力扣题号)

242. 有效的字母异位词 直接用数组模拟哈希表 只有小写字母&#xff0c;开26的数组就可以了 class Solution {public boolean isAnagram(String s, String t) {//24-28int[] hash new int[26];Arrays.fill(hash,0);for(int i0;i<s.length();i){hash[s.charAt(i)-a];}for(i…

2023年3月全国数据治理工程师认证DAMA-CDGA/CDGP火热报名中...

弘博创新是DAMA中国授权的数据治理人才培养基地&#xff0c;贴合市场需求定制教学体系&#xff0c;采用行业资深名师授课&#xff0c;理论与实践案例相结合&#xff0c;快速全面提升个人/企业数据治理专业知识与实践经验&#xff0c;通过考试还能获得数据专业领域证书。 DAMA认…

【致敬女神】HTMLReport应用之Unittest+Python+Selenium+HTMLReport项目自动化测试实战

HTMLReport应用之UnittestPythonSeleniumHTMLReport项目自动化测试实战1 测试框架结构2 技术栈3 实现思路3.1 使用HtmlTestRunner3.2 使用HTMLReport4 TestRunner参数说明4.1 源码4.2 参数说明5 框架代码5.1 common/reportOut.py5.2 common/sendMain.py5.3 report5.3.1 xxx.htm…

ARM架构下使用Docker安装Nacos

大家好&#xff0c;我是中国码农摘星人。 欢迎分享/收藏/赞/在看&#xff01; 注意&#xff1a;以下内容仅适用于 ARM 架构&#xff0c;X86 及 AMD 架构理论类似&#xff0c;只需要修改配置即可。 构建 MySQL 8.x 镜像 MySQL 5.x 版本没有 ARM 架构的镜像 FROM mysql:8.0.32 A…

Java 8 排序

今天分享 Java 8 进行排序的 10 个姿势&#xff0c;其实就是把 Java 8 中的 Lambda、Stream、方法引用等知识点串起来 传统排序 现在有一个 List 集合&#xff1a; public static List<User> LIST new ArrayList() {{add(new User("Lisa", 23));add(new Us…

三维人脸实践:基于Face3D的渲染、生成与重构

face3d: Python tools for processing 3D face git code: https://github.com/yfeng95/face3d paper list: PaperWithCode 该方法广泛用于基于三维人脸关键点的人脸生成、属性检测&#xff08;如位姿、深度、PNCC等&#xff09;&#xff0c;能够快速实现人脸建模与渲染。推荐…

如何判断多账号是同一个人?用图技术搞定 ID Mapping

原文出处&#xff1a;https://discuss.nebula-graph.com.cn/t/topic/11873 本文是一个基于图数据库 NebulaGraph 上的图算法、图数据库、图神经网络的 ID-Mapping 方法综述&#xff0c;除了基本方法思想的介绍之外&#xff0c;我还给大家弄了可以跑的 Playground。 基于图数据…

浏览器:浏览器指纹

一、引子 场景一、绑定用户与浏览器&#xff08;设备&#xff09;&#xff0c;比如某一个网站的账号给到用户&#xff0c;用户只能在自己的电脑的某浏览器使用。 场景二、精准推送广告。 场景三、公司做营销活动&#xff0c;防止活动奖品被程序薅羊毛。 等等场景我们有什么…

Qt配置VS的编译环境(以MSVC2015 64bit为例)

目录 一、原因 二、VS2015安装 三、配置套件&#xff08;Kits&#xff09; 一、原因 很多时候&#xff0c;由于VS版本切换&#xff0c;需要从高版本切换到低版本&#xff0c;或者从低版本升级到高版本&#xff0c;例如VS2019到VS2015&#xff0c;或者VS2010到VS2015。 以VS2…

辽宁千圣文化:抖音店铺怎么做二次优化?

抖音商品卡订单是指永华在抖音、抖音极速版&#xff0c;通过直播的方式出现短视频页面商品卡之后&#xff0c;直接成交商品详情页直接成交后的订单&#xff0c;那么跟着辽宁千圣文化小编来一起看看吧&#xff01;一.与政策有关1.什么是「商品卡订单」&#xff1f;用户通过抖音、…