Spark环境搭建(Stand alone模式)

news2024/10/7 12:28:23

Sand alone 架构

Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。

Stand alone 是完整的spark运行环境,其中 Master 角色以Master进程存在,worker角色以worker进程存在,
Driver角色在运行时存在于Master进程内,Executor运行于Worker进程内

StandAlone集群在进程上主要有3类进程:

  • 主节点Master进程:
    Master角色, 管理整个集群资源,并托管运行各个任务的Driver
  • 从节点Workers:
    Worker角色, 管理每个机器的资源,分配对应的资源来运行Executor(Task);
    每个从节点分配资源信息给Worker管理,资源信息包含内存Memory和CPU Cores核数
  • 历史服务器HistoryServer(可选):
    Spark Application运行完成以后,保存事件日志数据至HDFS,启动HistoryServer可以查看应用运行相关信息。

在这里插入图片描述
对于上图有一个地方需要注意:
在 standalone 模式下, master进程和 worker进程是固定的。
开启一个任务,就会在master进程中开启一个对应的 Driver,然后在worker中开启一个或者多个 Executor
开启两个任务,就会在master进程中开启两个对应的 Driver,对应的Executor各自汇报给对应的Driver,Executor数量根据你任务情况而定。

stand alone 环境安装

node1运行: Spark的Master进程 和 1个Worker进程
node2运行: spark的1个worker进程
node3运行: spark的1个worker进程
整个集群提供: 1个master进程 和 3个worker进程

前提:在所有机器安装Python(Anaconda)
参照 单机模式下的 Anaconda安装即可,除了不解压
https://blog.csdn.net/m0_48639280/article/details/128459471
记得配置 /etc/profile /root/.bashrc
更改国内源

进入到spark的安装目录,进入conf文件夹
配置workers文件,这儿有一个前提,你/etc/hosts 文件有路由映射,要是你没有映射worker文件设置不生效
在这里插入图片描述

# 改名, 去掉后面的.template后缀
mv workers.template workers

# 编辑worker文件
vim workers
# 将里面的localhost删除, 追加
node1
node2
node3
到workers文件内

# 功能: 这个文件就是指示了  当前SparkStandAlone环境下, 有哪些worker

配置spark-env.sh文件

# 1. 改名
mv spark-env.sh.template spark-env.sh

# 2. 编辑spark-env.sh, 在底部追加如下内容

## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk

## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop

## 指定spark老大Master的IP和提交任务的通信端口
# 告知Spark的master运行在哪个机器上
export SPARK_MASTER_HOST=node1
# 告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# 告知spark master的 webui端口
SPARK_MASTER_WEBUI_PORT=8080

# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker可用内存
SPARK_WORKER_MEMORY=1g
# worker的工作通讯地址
SPARK_WORKER_PORT=7078
# worker的 webui地址
SPARK_WORKER_WEBUI_PORT=8081

## 设置历史服务器
# 配置的意思是  将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"

在HDFS上创建程序运行历史记录存放的文件夹:
hadoop fs -mkdir /sparklog
hadoop fs -chmod 777 /sparklog 修改权限方便后续操作

配置spark-defaults.conf文件

# 1. 改名
mv spark-defaults.conf.template spark-defaults.conf

# 2. 修改内容, 追加如下内容
# 开启spark的日期记录功能
spark.eventLog.enabled 	true
# 设置spark日志记录的路径
spark.eventLog.dir	 hdfs://node1:8020/sparklog/ 
# 设置spark日志是否启动压缩
spark.eventLog.compress 	true

配置log4j.properties 文件 [可选配置]

# 1. 改名
mv log4j.properties.template log4j.properties

# 2. 修改内容 参考下图

在这里插入图片描述

将Spark安装文件夹 分发到其它的服务器上
目前这些配置只在 node1上。

scp -r spark-3.1.2-bin-hadoop3.2 node2:/export/server/
scp -r spark-3.1.2-bin-hadoop3.2 node3:/export/server/

准备步骤完成了,最后检查每台机器的:
JAVA_HOME
SPARK_HOME
PYSPARK_PYTHON
等等 环境变量是否正常指向正确的目录

启动历史服务器,在spark安装目录下的sbin目录
start-history-server.sh 执行该脚本即可
如下图,则启动成功
在这里插入图片描述
还是这个sbin目录
通过 start-all.sh脚本启动集群 stop-all.sh 脚本关闭集群
start-master.sh start-work.sh 启动当前机器上的 master 和 worker
如下图,则启动成功
在这里插入图片描述
在这里插入图片描述
查看Master的WEB UI
默认端口master我们设置到了8080
如果端口被占用, 会顺延到8081 …;8082… 8083… 直到申请到端口为止
可以在日志中查看, 具体顺延到哪个端口上:
Service 'MasterUI' could not bind on port 8080. Attempting port 8081.
在这里插入图片描述

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

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

相关文章

红黑树的迭代器红黑树与AVL树的比较

🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸 文章目录一、红黑树泛型实现map,set对多出来的模板参数的解释二、map和set对红黑树迭代器的封装①迭代器operator②operator--三、红黑树…

Web3中文|全球首个中华武术收藏级卡牌系列发布,传武文化的未来在元宇宙?

谈及中华武术的传承与发展,大家首先能想到什么?小说、电影、动画、游戏……等等,都是曾经的载体。作为中华文化极其重要的一部分,武术是国人独有的标签,太多经典作品珠玉在前,如今武术的传承,需…

【JavaScript】跟着pink学习第二天部分案例

1.猜数字游戏 三次机会&#xff0c;猜1~50之间的一个整数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vi…

12月第4周榜单丨B站UP主排行榜(飞瓜数据B站)发布!

飞瓜轻数发布2022年12月19日-12月25日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的…

【Python百日进阶-数据分析】Day140 - plotly表:plotly.graph_objects.Table()

文章目录一、语法二、参数三、返回值四、实例4.1 基本表4.2 样式表4.3 使用 Pandas 数据框4.4 Dash中的表4.5 更改行和列大小4.6 交替行颜色4.7 基于变量的行颜色4.8 基于变量的单元格颜色一、语法 构造一个新的 Table 对象 用于查看详细数据的表格视图。数据以行和列的网格排…

screen命令简要说明

screen命令简要说明 screen命令有什么用 screen命令虚拟了一个终端(session)&#xff0c;可在终端内运行命令&#xff0c;多次运行screen命令可以虚拟多个不同的终端&#xff1b; 每个session可以开启多个窗口&#xff0c;每个窗口有自己的shell&#xff0c;可以在不同的窗口…

ConcurrentSkipListMap-跳跃表 源码解析

ConcurrentSkipListMap-跳跃表 源码解析 问题 跳跃表长什么样子呢&#xff1f;跳跃表如何查找指定 key 数据呢&#xff1f;跳跃表如何添加指定 key-value 数据呢&#xff1f;跳跃表如何删除指定 key 数据呢&#xff1f; 理论知识 跳表是一个随机化的数据结构&#xff0c;实…

如何将两个笔记本电脑进行相互投屏

文章目录&#xff09;使用以下定义&#xff1a;实际中&#xff1a;A和B电脑分别安装无线显示器B电脑这么做&#xff1a;A电脑这么做&#xff1a;使用以下定义&#xff1a; 投影的电脑为&#xff1a;A电脑 待投影的电脑为&#xff1a;B电脑 实际中&#xff1a; A电脑为win10系…

《HelloGitHub》第 81 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01;简介HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。https://github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Pyth…

研讨会回顾 | 自动化测试“领导者”SmartBear解析软件质量与测试现状调研

2022年12月6日&#xff0c;龙智与软件测试自动化“领导者”SmartBear联合举办了主题为“ 如何通过自动化测试实现降本、增效与提质”的在线研讨会。 会上&#xff0c;SmartBear亚太渠道经理何平康深入解读了《2022年SmartBear软件质量与测试报告》&#xff0c;并从全球质量测试…

java开源工作流的特点介绍

我们都知道&#xff0c;在业务量激增的情况下&#xff0c;采用工作效率高的低代码开发平台已然成为趋势。目前&#xff0c;有不少专业的服务商正在积极研发低代码开发平台&#xff0c;立志为客户朋友提升办公协作效率而提升研发进度。本文将为大家介绍java开源工作流的特点&…

鹏孚隆冲刺创业板上市:计划募资约7亿元,部分收入来自海外

12月27日&#xff0c;北京易诚互动网络技术股份有限公司&#xff08;下称“易诚互动”&#xff09;在深圳证券交易所更新招股书&#xff0c;准备在创业板上市。本次冲刺上市&#xff0c;易诚互动计划募资3.13亿元&#xff0c;将用于用于数字银行应用平台升级项目、大数据智能风…

Spring Cloud(十七):高并发设计

秒杀 秒杀业务初步分析秒杀系统的挑战秒杀系统设计通用秒杀架构 页面访问常见的秒杀系统架构商城的秒杀系统设计和实现秒杀的隔离业务隔离系统隔离数据隔离 实际部署 OpenResty商品获取库存获取 Lua 访问Redis从库 — Linux 进程间通信IPC&#xff08;管道、匿名管道、共享内…

ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决

本文介绍在ArcMap软件中&#xff0c;进行分割栅格&#xff08;Split Raster&#xff09;工具处理后&#xff0c;得不到结果文件的解决方法。 最近&#xff0c;需要基于一个面要素类&#xff0c;对一个栅格遥感影像加以分割。如下图所示&#xff0c;这个面要素类中有3个部分&…

维视智造斩获2022年度光能杯最具影响力“智造”企业奖

近日&#xff0c;由光伏行业权威媒体和机构——索比光伏网、索比咨询联合主办的2022年度“光能杯”影响力大奖榜单发布&#xff0c;维视智造凭借硬件与AI算法能力、凭借在光伏行业具有创新性的智能制造产品方案与落地的标杆案例&#xff0c;斩获“2022年最具影响力“智造”企业…

算法学习:第一天-------位运算

前言 位运算是在算法设计中的一种非常重要和高效的方法&#xff0c;常见的有与运算&#xff0c;非运算&#xff0c;异或运算。我们常用的比较多的可能就是异或运算&#xff0c;又叫无进位相加。 1.1 取非运算----&#xff08;~&#xff09; 取非运算其实就是和我们的无符号数…

LCR测试仪的测试原理及使用方法

LCR表是电子测量仪器中经常使用的电子仪器&#xff0c;作为电子仪器的一员&#xff0c;LCR表经常出现在高校实验室和研究所里&#xff0c;但是对于刚接触它的用户来说&#xff0c;可能还不太了解。今天安泰测试就给大家介绍一下LCR表的测试原理和使用方法。 LCR的含义&#xf…

Crack:GrapeCity Documents for Excel 6.0.1

v6 中 GrapeCity Documents for Excel 的新增功能 ocuments for Excel (GcExcel) v6 版本现已上线&#xff01;该版本引入了新的基于 JavaScript 的数据查看器控件、功能和对 GcExcel .NET和Java API 的模板增强&#xff0c;以及更多与SpreadJS兼容的功能。看看下面的主要亮点。…

第07讲:Redis集群之cluster

一、什么是Cluster&#xff1f; redis的哨兵模式基本已经可以实现高可用&#xff0c;读写分离 &#xff0c;但是在这种模式下每台redis服务器都存储相同的数据&#xff0c;很浪费内存&#xff0c;所以在redis3.0上加入了cluster模式&#xff0c;实现的redis的分布式存储&#x…

pycharm运行显示未安装包,但其实已经安装

问题描述 在下载了专业版的pycharm后&#xff0c;在pycharm终端运行项目的时候&#xff0c;无论什么包&#xff0c;只要你下载&#xff0c;就是显示已经存在&#xff08;当然存在了&#xff0c;我虚拟环境之前都下的有&#xff09; REquirement already statisfied&#xff1a;…