title: 搭建分布式Spark集群
date: 2024-11-29 12:00:00
categories:
- 服务器
tags:
- Spark
- 大数据
搭建分布式Spark集群
- 本次实验环境:Centos 7-2009、Hadoop-3.1.4、JDK 8、Zookeeper-3.6.3、scala-2.11.5、Spark-3.2.1
功能规划
Master | Slave1 | Slave2 |
---|---|---|
主节点(master) | 工作节点(worker) | 工作节点(worker) |
192.168.66.6 | 192.168.66.7 | 192.168.66.21 |
前提
因
Spark
是基于Scala
语言开发的,而Scala
语言是基于JAVA
语言开发的;故需要先配置好两种语言的环境因
Spark
工作中需要Hadoop
集群;故需要先搭建好Hadoop
集群,并启动
准备工作
1. 解压Scala
- 首先上传Scala的文件到服务器上
# 解压文件到指定目录
tar -zxvf scala-2.11.5.tgz -C /opt/module/# 重命名文件夹
mv /opt/module/scala-2.11.5/ /opt/module/scala
2. 配置用户环境变量
cat >> ~/.bashrc << "EOF"# ------------------- Scala 配置--------------------
# 设置Scala环境变量,指向Scala安装目录
export SCALA_HOME=/opt/module/scala# 将Scala的bin目录添加到PATH环境变量
export PATH=$PATH:$SCALA_HOME/bin
# -------------------------------------------------
EOF
-----------------------------------------------------------说明举例 export PATH=$SCALA_HOME/bin:$PATH英文冒号代表分隔这段代码表示
1. 当你输入一个命令时,shell会首先在"SCALA_HOME"这个变量的"bin"子目录中查找,
2. 最后,若找不到,则在"PATH"的指定目录中查找-------------------------------------------------------------
开始安装
3. 解压Spark
- 首先上传Spark的文件到服务器上,或直接进行以下的下载行为
# 使用wget命令下载Spark文件(二选一)
wget -P /tmp/ -c 'https://repo.huaweicloud.com/artifactory/apache-local/spark/spark-3.2.1/spark-3.2.1-bin-hadoop2.7.tgz'# 使用curl命令下载Spark文件(二选一)
curl -C - 'https://repo.huaweicloud.com/artifactory/apache-local/spark/spark-3.2.1/spark-3.2.1-bin-hadoop2.7.tgz' -O /tmp/# 解压文件到指定目录
tar -zxvf /tmp/spark-3.2.1-bin-hadoop2.7.tgz -C /opt/module/# 重命名文件夹
mv /opt/module/spark-3.2.1-bin-hadoop2.7 /opt/module/spark
4. 配置用户环境变量
cat >> ~/.bashrc << "EOF"
# ------------------- Spark 配置--------------------
# 设置Spark环境变量,指向Spark安装目录
export SPARK_HOME=/opt/module/spark# 将Spark的bin目录添加到PATH环境变量
export PATH=$PATH:$SPARK_HOME/bin
# -------------------------------------------------
EOF
-----------------------------------------------------------说明举例 export PATH=$SPARK_HOME/bin:$PATH英文冒号代表分隔这段代码表示
1. 当你输入一个命令时,shell会首先在"SPARK_HOME"这个变量的"bin"子目录中查找,
2. 最后,若找不到,则在"PATH"的指定目录中查找-------------------------------------------------------------
5. 编写spark主节点的配置文件
# 进入spark配置目录
cd /opt/module/spark/conf# 复制spark-env.sh模板
cp spark-env.sh.template spark-env.sh
根据自己节点的信息,或者查看~/.bashrc,修改下面各项的内容,随后复制粘贴即可
cat >> spark-env.sh << "EOF"
# 配置Spark主节点的IP或主机名
export SPARK_MASTER_IP=master
# 配置Scala的家目录
export SCALA_HOME=/opt/module/scala
# 配置Spark工作节点的内存大小
export SPARK_WORKER_MEMORY=4g
# 配置JAVA的家目录
export JAVA_HOME=/opt/module/jdk1.8.0_202
# 配置Hadoop的家目录
export HADOOP_HOME=/opt/module/hadoop-3.1.4
# 配置Hadoop的配置目录
export HADOOP_CONF_DIR=/opt/module/hadoop-3.1.4/etc/hadoop
EOF
6. 编写spark工作节点的配置文件
# 复制workers模板
cp workers.template workers
根据自己工作节点的信息,修改下面的内容,随后复制粘贴即可
# 清空工作节点原本的信息——即删除这个文件的最后一行
sed -i '$d' workers# 配置工作节点
cat >> workers << EOF
slave1
slave2
EOF
7. 同步文件
# 同步到slave1机器
scp -r /opt/module/scala/ slave1:/opt/module/
scp -r /opt/module/spark/ slave1:/opt/module/
scp ~/.bashrc root@slave1:/root# 同步到slave2机器
scp -r /opt/module/scala/ slave2:/opt/module/
scp -r /opt/module/spark/ slave2:/opt/module/
scp ~/.bashrc root@slave2:/root
8. 环境变量生效
# master节点环境变量生效
source ~/.bashrc# slave1节点环境变量生效
ssh slave1 'source ~/.bashrc'# slave2节点环境变量生效
ssh slave2 'source ~/.bashrc'
安装结束
9. 启动Spark集群
$SPARK_HOME/sbin/start-all.sh
10. 查看Spark进程
-
master会有
Master
的进程 -
slave1会有
Worker
的进程 -
slave2会有
Worker
的进程
# 命令
jps
11. 浏览器访问
访问Spark,地址:http://192.168.66.6:端口#端口详情
4040:这是Spark UI的默认端口,用于监控和查看Spark应用的状态。
7077:这是StandAlone模式下Spark Master服务的默认端口。
8080:这是Spark Master的Web UI端口,用于查看集群状态。
8081:这是Spark Worker的Web UI端口,用于查看单个工作节点的状态。这个地址是master的IP地址
12. 停止Spark集群
$SPARK_HOME/sbin/stop-all.sh
参考文档
-
大数据分布式集群搭建详细步骤(Spark的安装与配置)_spark分布式集群部署及ha配置-CSDN博客
-
【Spark】Windows下安装Spark(亲测成功安装)_windows安装spark-CSDN博客
-
Apache Spark 3.2.1安装教程-百度开发者中心