目录
[前言 :](#前言 :)
[二、 安装步骤](#二、 安装步骤)
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上再安装一遍。
三、集群启动/关闭
-
启动master:
bashcd /opt/installs/spark sbin/start-master.sh
-
启动所有worker:
bashsbin/start-workers.sh
-
启动日志服务:
bashsbin/start-history-server.sh
-
要想关闭某个服务,将start换为stop
四、打开监控界面验证
master监控界面:http://bigdata01:8080/
日志服务监控界面:http://bigdata01:18080/