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

相关推荐
PersistJiao37 分钟前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
九河云1 小时前
如何对AWS进行节省
大数据·云计算·aws
FreeIPCC1 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
梦幻通灵2 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客2 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
天冬忘忧2 小时前
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
大数据·分布式·kafka
sevevty-seven3 小时前
幻读是什么?用什么隔离级别可以防止幻读
大数据·sql
Yz98765 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
PersistJiao5 小时前
Spark RDD 的宽依赖和窄依赖
spark·rdd·宽窄依赖
那一抹阳光多灿烂6 小时前
Spark中的Stage概念
大数据·spark