【快速上手】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/

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习enable_if模板, 学习unqiue_str 删除操作】

enable_if 是 C 标准库中的一个模板结构体,它用于条件编译和 SFINAE(Substitution Failure Is Not An Error)。enable_if 的主要作用是通过条件编译来控制模板的实例化,从而实现条件编译和 SFINAE。 1. enable_if 的基本用法如下…

放大器稳定性分析

1 稳定性的时域体现 下图的放大器构成的跟随电路且反向输入端有一个电容,电路工作过程如下:输入Vin从0开始增大,Vout也开始上升,Vout通过R给C充电,Vfb点电压随着电容的充电增加,Vfb就相对与Vout存在时延&a…

学习记录:基于Z-Stack 3.0.1的Zigbee智能插座实现

引言 本文记录了笔者基于Z-Stack 3.0.1协议栈,通过学习Zigbee通信协议,实现一个简单的智能插座控制过程。通过这个过程,笔者对Zigbee网络的形成、设备间的通信以及低功耗设计有了更深入的理解。 工程代码链接:链接:h…

Python Matplotlib 如何处理大数据集的绘制,提高绘图效率

Python Matplotlib 如何处理大数据集的绘制,提高绘图效率 在数据分析和可视化的过程中,处理大数据集常常是我们面临的挑战。绘制大数据集不仅需要时间和计算资源,还可能导致图形显示不流畅,甚至崩溃。Matplotlib 是 Python 中一个…

2016-2020年全国保护性耕作/常规耕作农田分类数据集

2016-2020年全国保护性耕作/常规耕作农田分类数据集 数据介绍 基于Sentinel-2遥感产品,使用来自文献调研和目视解译产生的保护性/常规耕作样本点,通过交叉验证方法训练随机森林分类器,生成了2016-2020年全国保护性耕作/常规耕作农田分类数据…

VMware系统镜像推荐网站

今天准备找一个Mac系统的镜像,在网上搜大部分都是广告,有的还做的很隐蔽,不点进去都无法确定,非常麻烦,不如多花点时间自己整理一个使用的网站。 如果有更优推荐,请在评论中说明,我会及时更新并…

国标GB28181-2022平台EasyGBS国标GB28181软件:GB/T28181-2022解读、应用和技术实现

随着信息技术的飞速发展,视频监控领域正经历从传统安防向智能化、网络化安防的深刻转变。在这一变革中,国标GB28181-2022平台EasyGBS作为一款基于GB28181标准的视频监控集成与管理平台,凭借其卓越的性能、高度的灵活性和用户友好的设计&#…

【ONLYOFFICE 文档 8.2 版本深度测评】功能革新与用户体验的双重飞跃

引言 在数字化办公的浪潮中,ONLYOFFICE 文档以其强大的在线协作功能和全面的办公套件解决方案,赢得了全球用户的青睐。随着 8.2 版本的发布,ONLYOFFICE 再次证明了其在办公软件领域的创新能力和技术实力。 一.协作编辑 PDF:团队合…

什么是人工智能学习框架?——人工智能技术科普指南

随着人工智能(AI)的快速发展,AI应用已经广泛覆盖到我们的日常生活中:从智能推荐系统到语音助手,再到自动驾驶技术。然而,很多人并不清楚人工智能模型是如何构建的。要理解这一点,首先得了解人工…

基于Spring Boot的高校物品捐赠管理系统设计与实现,LW+源码+讲解

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装高校物品捐赠管理系统软件来发挥其高效地信息处理的作用&a…

部署istio应用未能产生Envoy sidecar代理

1. 问题描述及原因分析 在部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio的第2.2章节,部署nginx应用,创建的pod并没有产生Envoy sidecar代理,仅有一个应用容器运行中 故在随后的prometheus中也没有产生指标istio_requests_total。通…

跨越科技与文化的桥梁——ROSCon China 2024 即将盛大开幕

在全球机器人技术飞速发展的浪潮中,ROS(Robot Operating System)作为一款开源的机器人操作系统,已成为无数开发者、研究人员和企业的首选工具。为了进一步推动ROS的应用与发展,全球知名的机器人操作系统会议——ROSCon…

TensorRT-LLM的k8s弹性伸缩部署方案

Scaling LLMs with NVIDIA Triton and NVIDIA TensorRT-LLM Using Kubernetes | NVIDIA Technical Blog 一共涉及4个k8s组件: 1. Deployment:跑起来N个pod;指定NVIDIA官方的triton&trt-llm的docker image,指定好model放在哪个…

AJAX学习笔记总结

目录 AJAX简介 XML简介 AJAX的特点 AJAX的优点 AJAX的缺点 服务端框架 GET请求 绑定事件步骤: 需求案例 body代码 POST请求 跨域 同源策略 如何解决跨域 JSONP JSONP是什么? JSONP怎么工作的 JSONP的使用 CORS CORS是什么&#xff1…

谷粒商城のsentinelzipkin

文章目录 前言一、Sentinel1、什么是Sentinel2、项目配置3、使用案例3.1、流控3.2、降级3.3、黑白名单设置 二、Zipkin1、什么是Zipkin2、项目配置3、整合案例 前言 本篇介绍Spring Cloud Ali的sentinel组件,用于对微服务的熔断降级,以及链路追踪zipkin的…

25国考照片处理器使用流程图解❗

1、打开“国家公务员局”网站,进入2025公务员专题,找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”,再找到“照片处理工具”双击。 6、双击后会进入这样的界面,点击&…

UE5.4 PCG Layered Biomes插件

B站学习链接 官方文档 一、PCGSpawn Preset:负责管理PCG要用到的植被资产有哪些 二、BiomesSettings:设置要使用的植被资产Layer、Spawn参数 1.高度Layer参数: 2.地形Layer:我这里用地形样条线绘制了一块地形Layer 绘制点和…

vrrp和mstp,vrrp和byd

vrrp和mstp 思路 vrrp是用来虚拟网关,噢,是虚拟一条虚拟网关 优先级,priority越大越优先,优先级相同,哪个的路由器的vrrp先起来,谁就是主 mstp是快速生成树协议,防止环路用的 优先级越小越优…

pycharm设定代码模板

1、在文件点击设置 ​​​​​​​ ​​​​​​​ 2、点击编辑器--实时模板--找到需要插入模板的位置如我要插入HTML的模板---选择--点击实时模板 3、如图: 4、添加模板内容,如果模板有变量可以在编辑变量处点击编辑 5、编辑变量 6、点…

什么是红客?红客入门基础(非常详细)零基础入门到精通,收藏这篇就够了

什么是红客: 提到红客,我们不得不想到2001年中美黑客大战,红客联盟等这些词汇。曾几何时这个群体给尚且稚嫩的国内安全环境带来了一枚种子,从此网络安全在这片土地开始发芽。不知道有多少人是受到红客的影响走上了安全这条路&…