【快速上手】pyspark 集群环境下的搭建(Standalone模式)

目录

前言 :

一、spark运行的五种模式

二、 安装步骤

安装前准备

1.第一步:安装python

2.第二步:在bigdata01上安装spark

3.第三步:同步bigdata01中的spark到bigdata02和03上

三、集群启动/关闭

四、打开监控界面验证


前言:

spark有五种运行模式,本文介绍在集群环境下Standalone模式的搭建!!!YARN模式请前往下篇文章。


一、spark运行的五种模式

1、本地模式:

      Local:一般用于做测试,验证代码逻辑,不是分布式运行,只会启动1个进程来运行所有任务。

2、集群模式:

    Cluster:一般用于生产环境,用于实现PySpark程序的分布式的运行

   ①Standalone:Spark自带的分布式资源平台,功能类似于YARN

   ②YARN:Spark on YARN,将Spark程序提交给YARN来运行,工作中主要使用的模式

   ③Mesos:类似于YARN,国外见得多,国内基本见不到

   ④K8s:基于分布式容器的资源管理平台,运维层面的工具。

二、 安装步骤

安装前准备

(1)首先准备至少三台服务器 —— 我的三台服务器分别是:bigdata01  bigdata02  bigdata03

(2)各个服务器上都要安装jdk 和 hadoop

(3)在bigdata01服务器上有同步的脚本:xsync.sh(不是必须的)

我的所有安装包放在/opt/modules下,解压在/opt/installs下

1.第一步:安装python

通过Anaconda 安装 ,因为这个软件不仅有python还有其他的功能,比单纯安装python功能要强大。分别在bigdata01  bigdata02  bigdata03上安装Anaconda

Anaconda3-2021.05-Linux-x86_64.sh放在了我的资源里,需要的自取!!!

①.上传:将Anaconda上传到/opt/modules下

cd /opt/modules

②安装

# 添加执行权限
chmod u+x Anaconda3-2021.05-Linux-x86_64.sh
# 执行
sh ./Anaconda3-2021.05-Linux-x86_64.sh
# 过程
#第一次:【直接回车,然后按q】
      Please, press ENTER to continue
      >>>
#第二次:【输入yes】
     Do you accept the license terms? [yes|no]
     [no] >>> yes
#第三次:【输入解压路径:/opt/installs/anaconda3】
     [/root/anaconda3] >>> /opt/installs/anaconda3

#第四次:【输入yes,是否在用户的.bashrc文件中初始化Anaconda3的相关内容】
      Do you wish the installer to initialize  Anaconda3
      by running conda init? [yes|no]
      [no] >>> yes

③刷新环境变量

source /root/.bashrc

④激活虚拟环境,如果需要关闭就使用:conda deactivate

conda activate

⑤编辑环境变量

vi /etc/profile

# 添加以下内容

export ANACONDA_HOME=/opt/installs/anaconda3
export PATH=$PATH:$ANACONDA_HOME/bin

⑥刷新环境变量,并且做一个软链接

# 刷新环境变量

source /etc/profile

# 创建软连接
ln -s /opt/installs/anaconda3/bin/python3  /usr/bin/python3
# 验证
echo $ANACONDA_HOME

三台服务器都安装Anaconda 都一样 安装步骤!!!

2.第二步:在bigdata01上安装spark

spark-3.1.2-bin-hadoop3.2.tgz放在了我的资源里,需要的自取!!!

①上传解压安装:上传安装包到/opt/modules
cd /opt/modules
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs
②重命名
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-standalone
③构建软连接
ln -s spark-standalone spark

④在HDFS上创建程序日志存储目录

注意:!!!首先如果没有启动hdfs,需要启动一下

# 第一台机器启动HDFS
start-dfs.sh
# 创建程序运行日志的存储目录
hdfs dfs -mkdir -p /spark/eventLogs/

⑤修改配置文件:

spark-env.sh配置文件:

cd /opt/installs/spark/conf
mv spark-env.sh.template spark-env.sh
vim spark-env.sh

 # 22行:申明JVM环境路径以及Hadoop的配置文件路径
export JAVA_HOME=/opt/installs/jdk
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
# 60行左右
export SPARK_MASTER_HOST=bigdata01 # 主节点所在的地址
export SPARK_MASTER_PORT=7077 #主节点内部通讯端口,用于接收客户端请求
export SPARK_MASTER_WEBUI_PORT=8080 #主节点用于供外部提供浏览器web访问的端口
export SPARK_WORKER_CORES=1   # 指定这个集群总每一个从节点能够使用多少核CPU
export SPARK_WORKER_MEMORY=1g   #指定这个集群总每一个从节点能够使用多少内存
export SPARK_WORKER_PORT=7078
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_DAEMON_MEMORY=1g  # 进程自己本身使用的内存
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"
# Spark中提供了一个类似于jobHistoryServer的进程,就叫做HistoryServer, 用于查看所有运行过的spark程序

spark-defaults.conf:Spark属性配置文件

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

# 末尾
spark.eventLog.enabled           true
spark.eventLog.dir              hdfs://bigdata01:9820/spark/eventLogs
spark.eventLog.compress              true

workers:从节点地址配置文件

mv workers.template workers
vim workers

# 删掉localhost,添加以下内容
bigdata01
bigdata02
bigdata03

log4j.properties:日志配置文件

mv log4j.properties.template log4j.properties
vim log4j.properties

# 19行:修改日志级别为WARN
log4j.rootCategory=WARN, console

3.第三步:同步bigdata01中的spark到bigdata02和03上

  • 如果你bigdata01上有同步脚本,直接执行下面命令即可:
# 同步spark-standalone
xsync.sh /opt/installs/spark-standalone/
# 同步软链接
xsync.sh /opt/installs/spark
  •  如果没有,需要按照上面bigdata01的步骤在bigdata02  bigdata03上再安装一遍。

三、集群启动/关闭

  1. 启动master:
    cd /opt/installs/spark
    sbin/start-master.sh
  2. 启动所有worker:

    sbin/start-workers.sh
  3. 启动日志服务:

    sbin/start-history-server.sh
    

  4. 要想关闭某个服务,将start换为stop

四、打开监控界面验证

 master监控界面:http://bigdata01:8080/

日志服务监控界面:http://bigdata01:18080/

 

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

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

相关文章

Cloud Native Spring in Action

目录 设计原则 15 Factor App 数据验证和错误处理 测试 使用 Junit 5 进行单元测试 使用 SpringBootTest 进行集成测试 使用 WebMvcTest 测试 REST Controller 使用 JsonTest 测试 JSON 序列化 使用 DataJdbcTest 和 Testcontainers 测试数据持久化 使用 Reactor 和 …

三周精通FastAPI:31 使用 StaticFiles从目录中自动提供静态文件

官方文档:静态文件 - FastAPI 静态文件 您可以使用 StaticFiles从目录中自动提供静态文件。 使用StaticFiles 导入StaticFiles。"挂载"(Mount) 一个 StaticFiles() 实例到一个指定路径。 from fastapi import FastAPI from fastapi.staticfiles impo…

【双目视觉标定】——1原理与实践

0 前言 双目视觉定位是目前机器(机器人)等领域中使用得非常广泛的视觉定位技术,双目视觉是模拟人的视觉系统利用两个不同位置的摄像头的视差来确定物体的位置。由于有需要采集两个摄像头的图像共同参与计算,所以双目相机装配要求…

【最佳牛围栏——二分】

题目 思路 扩大数据,避免精度问题,拉到整数域解决不用枚举前缀和的 l 和 r,改为求可能 l 的最小值,线性做法不用记录长度来求平均值,改为用平均值处理数据(这是第二条的前提),直接通…

[java][高级]MyBatisPlus

一、MyBatisPlus简介 1. 入门案例 问题导入 MyBatisPlus环境搭建的步骤? 1.1 SpringBoot整合MyBatisPlus入门程序 ①:创建新模块,选择Spring初始化,并配置模块相关基础信息 ②:选择当前模块需要使用的技术集&…

Shutdown Abort 强制关库,真的有可能起不来?

全文目录: 开篇语前言 🌟目录 📋1. 什么是 Shutdown Abort? 💡工作原理 🔧 2. Shutdown Abort 的潜在风险 ⚠️3. 真实案例分析 📊案例背景 🌐分析与反思 🔍 4. 如何降低…

win10/11无休眠设置和断电后电池模式自动休眠而不是睡眠-用以省电

1、打开休眠设置选项 打开控制面板\所有控制面板项\电源选项\ 左侧的选择电源按钮的功能 默认状态没有休眠 1、管理员权限打开cmd或者power shell 2、输入一下指令,打开休眠选项 powercfg -hibernate on关闭后重新打开 控制面板\所有控制面板项\电源选项\左侧的选…

PyQt5实战——多脚本集合包,UI以及工程布局(二)

个人博客:苏三有春的博客 系列往期: PyQt5实战——多脚本集合包,前言与环境配置(一) 布局 2.1 UI页面布局 整体框架分为分为三个部分,垂直分布。 第一个部分为功能选择按钮(如UTF-8转换&#…

Linux驱动开发(3):字符设备驱动

上一章节我们了解到什么是内核模块,模块的加载卸载详细过程以及内核模块的使用等内容。 本章,我们将学习驱动相关的概念,理解字符设备驱动程序的基本框架,并从源码上分析字符设备驱动实现和管理。 主要内容有如下五点:…

中国逐年最大NDVI数据集(250m)

最大NDVI数据集是指通过遥感技术获取的归一化植被指数(NDVI)数据,这些数据反映了地表植被覆盖的密集程度。NDVI的数值范围通常为-1到1,其中-1表示完全被水覆盖,0表示有岩石或裸土等非植被覆盖,而1表示植被完…

【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法

【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 文章目录 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和…

Transformer 架构简单理解;GPT-3.5 的架构,向量长度为 :12288;Transformer架构改进:BERT和GPT

目录 Transformer 架构简单理解 GPT-3.5 的架构,向量长度为 :12288 Transformer工作原理:在多头注意力机制(Multi - Head Attention)的标准操作中,每个头(head)的输入数据是相同的 Transformer架构改进:BERT BERT:BERT是一种基于Transformer的预训练语言模型,它…

Springboot 内置缓存与整合Redis作为缓存

Spring Boot 的缓存注解允许开发者在不修改业务逻辑的情况下,将方法的计算结果缓存起来,从而减少重复计算和数据库查询,提高系统性能。 1、Spring Boot Cache 的基本用法及常用注解 1. 引入依赖 首先,需要在项目中引入缓存相关依…

《西部皮革》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《西部皮革》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《西部皮革》级别? 答:省级。主管单位:四川省经济和信息化厅 …

【4】函数与结构体

文章目录 一、函数的基本流程及调用二、包的使用原理三、函数的使用注意事项四、defer的使用五、字符串常用系统函数六、时间函数七、常用内置函数八、错误处理机制及自定义错误 一、函数的基本流程及调用 package mainimport ("fmt""strings" )// 定义简…

供应SW1108P集成氮化镓直驱的高频准谐振IC

1. 概述 SW1108P 是一款针对离线式反激变换器的高性能高集成度准谐振电流模式 PWM 控制器。 SW1108P 内置 6V 的驱动电压,可直接用于驱动氮化镓功率管;芯片工作于带谷底锁定功能 的谷底开启模式,同时集成频率抖动功能以优化 EMI 性能&…

uniapp使用中小问题及解决方法集合

1、 u-input 标签 设置只读、禁用后,click事件不生效 // 解决u-input 标签 设置只读、禁用后,click事件不生效(不弹出弹框) .input-disabled-click {pointer-events: none; }2、 uniapp实现u-datetime-picker时间选择器的默认日期定位,解决d…

HTML 基础标签——表格标签<table>

文章目录 1. `<table>` 标签:定义表格2. `<tr>` 标签:定义表格行3. `<th>` 标签:定义表头单元格4. `<td>` 标签:定义表格单元格5. `<caption>` 标签:为表格添加标题6. `<thead>` 标签:定义表格头部7. `<tbody>` 标签:定义表格…

使用Nginx作为反向代理和负载均衡器

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Nginx作为反向代理和负载均衡器 引言 Nginx 简介 安装 Nginx Ubuntu CentOS 配置 Nginx 作为反向代理 配置 Nginx 作为负载…

「实战应用」使用 DHTMLX 构建数据透视表,促进有效的数据分析

概述&#xff1a;在本文中&#xff0c;您将了解组织何时选择数据透视表来处理大数据&#xff0c;并熟悉用于在网页上实现此功能的 DHTMLX 工具。 如今&#xff0c;高效处理大数据已成为企业的必需。企业每天必须处理大量数据&#xff0c;以将其转化为可操作的见解并获得竞争优…