【快速上手】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,需要启动一下

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

⑤修改配置文件:

spark-env.sh配置文件:

bash 复制代码
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属性配置文件

bash 复制代码
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:从节点地址配置文件

bash 复制代码
mv workers.template workers
vim workers

删掉localhost,添加以下内容

bigdata01

bigdata02

bigdata03

log4j.properties:日志配置文件

bash 复制代码
mv log4j.properties.template log4j.properties
vim log4j.properties

19行:修改日志级别为WARN

log4j.rootCategory=WARN, console

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

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

三、集群启动/关闭

  1. 启动master:

    bash 复制代码
    cd /opt/installs/spark
    sbin/start-master.sh
  2. 启动所有worker:

    bash 复制代码
    sbin/start-workers.sh
  3. 启动日志服务:

    bash 复制代码
    sbin/start-history-server.sh
  4. 要想关闭某个服务,将start换为stop

四、打开监控界面验证

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

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

相关推荐
知见漫记3 小时前
AI 桌面 Agent 本地执行能力技术对照:沙箱机制与权限模式拆解
大数据·人工智能
kruptos4 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
xcl09255 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
cspttty5 小时前
国际经济与贸易专业考什么证对就业有帮助
大数据
足球魅力5 小时前
哪款足球软件能分析凯利指数大数据?
大数据·业界资讯
xwz小王子6 小时前
机器人的“最后一毫米”: 新加坡南洋理工大学Facet-0如何教会基础模型“感受”自己的动作?
大数据·人工智能·机器人
腾视科技-AI6 小时前
腾视科技AIBOX双版本重磅发布!本地安全与全球适配,解锁视频智能新可能
大数据·人工智能·科技·安全·大模型·腾视科技·ai算力盒
小智老师PMP6 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
姜穆澜6 小时前
OneID 从 0 到 1 完整生产案例(五)
大数据·notepad++
geneculture7 小时前
《融智学:终结信息定义纷争的时代范式》 拓展分析述评
大数据·人工智能·信息科学·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·比较分析