一、Spark简介
Spark使用Scala语言进行实现,是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集。
Spark具有运行速度快、易用性好、通用性强和随处运行等特点。
部署Spark集群大体上分为两种模式:单机模式与集群模式
大多数分布式框架都支持单机模式,方便开发者调试框架的运行环境。但是在生产环境中,并不会使用单机模式。因此,本文将介绍Spark集群的分布式安装与部署。
二、前期准备
1.需要准备三台Linux机器—— hadoop1 、 hadoop2 、 hadoop3 ,并设置好hosts文件。 三台机器上都安装好JDK8并配置好相关的环境变量。 确保三台机器可以正常使用网络。 配置好hadoop1机器到其余两台机器的单向免密登陆。
2.创建目录
mkdir -p /export/servers
mkdir -p /export/software
mkdir -p /export/data
三、下载Spark
1.打开Spark存档网站:https://archive.apache.org/dist/spark ,找到Spark3.5.2版本,点击下载。
2.下载Linux版本的安装文件 spark 3.5.2-bin-hadoop3.tgz ,将下载的文件上传到 hadoop1 机器的 /export/software 目录中,并在终端里切换到该目录为工作目录。
cd /export/software
四、安装Spark
1.打开hadoop1 ,执行如下指令,进行Spark的安装
tar -zvxf spark-3.5.2-bin-hadoop3.tgz -C /export/servers/
2.进入到Spark的安装目录,修改Spark的安装目录文件名为: spark-3.5.2
mv spark-3.5.2-bin-hadoop3 spark-3.5.2
五、配置环境变量
1.编辑环境变量文件
vim /etc/profile
2.在文件底部添加如下内容
export SPARK_HOME=/export/servers/spark-3.5.2
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
3.使用 source 命令使修改的环境变量生效
source /etc/profile
六、Spark相关配置
1.进入到 hadoop1 的 /export/servers/spark-3.5.2/conf 目录
cd /export/servers/spark-3.5.2/conf
2.复制一份spark-env.sh模板文件作为此配置文件
cp spark-env.sh.template spark-env.sh
3.使用vim工具在此文件中添加如下内容
# 配置Java环境
export JAVA_HOME=/export/servers/jdk1.8.0_241
# 指定Master的IP
export SPARK_MASTER_HOST=hadoop1
# 指定Master的端口
export SPARK_MASTER_PORT=7077
export HADOOP_HOME=/export/servers/hadoop-3.3.0 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
4.复制一份slaves.template模板文件作为此配置文件
cp slaves.template slaves
5.使用vim工具在直接在文件中添加slave机器的主机名
hadoop2
hadoop3
6.在hadoop1机器上执行如下指令,将文件传输到另外两台机器上
scp -r /export/servers/spark-3.5.2/ hadoop2:/export/servers/
scp -r /export/servers/spark-3.5.2/ hadoop3:/export/servers/
scp -r /etc/profile hadoop2:/etc/
scp -r /etc/profile hadoop3:/etc/
7.分别在hadoop2,hadoop3里使用 source 命令来使环境变量生效
source /etc/profile
七、启动集群
使用如下完整路径的指令启动集群
/export/servers/spark-3.5.2/sbin/start-all.sh