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

相关推荐
NiNg_1_2341 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式
成长的小牛2332 小时前
es使用knn向量检索中numCandidates和k应该如何配比更合适
大数据·elasticsearch·搜索引擎
goTsHgo2 小时前
在 Spark 上实现 Graph Embedding
大数据·spark·embedding
程序猿小柒2 小时前
【Spark】Spark SQL执行计划-精简版
大数据·sql·spark
隔着天花板看星星2 小时前
Spark-Streaming集成Kafka
大数据·分布式·中间件·spark·kafka
奥顺2 小时前
PHPUnit使用指南:编写高效的单元测试
大数据·mysql·开源·php
小屁孩大帅-杨一凡2 小时前
Flink 简介和简单的demo
大数据·flink
天冬忘忧3 小时前
Flink调优----反压处理
大数据·flink
sinat_307021533 小时前
大数据政策文件——职业道德(山东省大数据职称考试)
大数据·职场和发展
SeaTunnel3 小时前
某医疗行业用户基于Apache SeaTunnel从调研选型到企业数据集成框架的落地实践
大数据