【快速上手】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 ![](https://i-blog.csdnimg.cn/direct/388c5b2e901f46528aa585f9d3a2cc8c.png) ⑤编辑环境变量 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/

相关推荐
Lalolander3 分钟前
装备制造企业选型:什么样的项目管理系统最合适?
大数据·制造·工程项目管理·装备制造·epc项目管理·项目成本管控·业财一体化
爱吃泡芙的小白白28 分钟前
爬虫学习——使用HTTP服务代理、redis使用、通过Scrapy实现分布式爬取
redis·分布式·爬虫·http代理·学习记录
island13141 小时前
【git#4】分支管理 -- 知识补充
大数据·git·elasticsearch
LCHub低代码社区1 小时前
钧瓷产业原始创新的许昌共识:技术破壁·产业再造·生态重构(一)
大数据·人工智能·维格云·ai智能体·ai自动化·大禹智库·钧瓷码
晴天彩虹雨2 小时前
Flink 数据清洗与字段标准化最佳实践
大数据·数据仓库·flink
一个数据大开发2 小时前
解读《数据资产质量评估实施规则》:企业数据资产认证落地的关键指南
大数据·数据库·人工智能
TTBIGDATA2 小时前
如何将 Apache Hudi 接入 Ambari?完整部署与验证指南
大数据·hadoop·ambari·hudi·bigtop·湖仓·自定义组件集成
什么芮.3 小时前
spark-streaming
pytorch·sql·spark·kafka·scala
科技在线3 小时前
科技赋能建筑新未来:中建海龙模块化建筑产品入选中国建筑首批产业化推广产品
大数据·人工智能
桑榆08064 小时前
Kafka简介
spark·kafka