Spark伪分布式集群搭建(Ubuntu系统)

环境准备
  1. 系统要求:Ubuntu 20.04/22.04 LTS

  2. 软件版本

    • Hadoop 3.3.5

    • JDK 8

    • Spark-3.5.6-bin-hadoop3

  3. 硬件要求:至少4GB内存,20GB磁盘空间

以下是基于Ubuntu系统的Spark伪分布式集群搭建全流程。以Spark 3.5.6 + Hadoop 3.3.5 + JDK 1.8组合为例,适用于Ubuntu 20.04/22.04系统:


详细步骤

1.安装Hadoop3.3.5(伪分布式)

Spark的安装过程较为简单,在已安装好 Hadoop 的前提下,经过简单配置即可使用。

如果你的系统没有安装Hadoop3.3.5(伪分布式),请访问Hadoop伪分布式集群搭建(Ubuntu系统),依照教程学习安装即可。

2.安装JAVA JDK

安装Hadoop3.3.5的过程就已经要求安装JAVA JDK1.8了。如果没有,请参考Hadoop伪分布式集群搭建(Ubuntu系统)进行安装配置。

3.下载安装Spark

首先需要下载Spark安装文件,访问Spark官网

①使用FinalShell将Spark安装包上传至虚拟机目录:/home/hadoop/下载

解压Spark安装包至/usr/local目录下

bash 复制代码
sudo tar -zxvf /home/hadoop/下载/spark-3.5.6-bin-hadoop3.3.tgz -C /usr/local/ # 解压到/usr/local
cd /usr/local/    #切换至spark安装目录
sudo chown -R hadoop ./spark-3.5.6-bin-hadoop3.3   #修改spark安装目录权限给Hadoop用户

4.修改Spark伪分布式配置文件

进入解压后的Spark安装目录的/conf目录即"/usr/local/spark-3.5.6-bin-hadoop3/conf",复制spark-env.sh.template文件并重命名为spark-env.sh,命令如下:

bash 复制代码
cd /usr/local/spark-3.5.6-bin-hadoop3/conf    #切换conf目录
cp spark-env.sh.template spark-env.sh         #重命名文件

打开spark-env.sh文件:

bash 复制代码
vim spark-env.sh

在spark-env.sh文件头部添加如下代码 :

java 复制代码
#Jdk安装路径
 
export JAVA_HOME=/usr/local/jdk1.8.0_161   
 
#Hadoop安装路径
 
export HADOOP_HOME=/usr/local/hadoop-3.3.5
 
#Hadoop配置文件的路径                
 
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.5/etc/hadoop    
 
#Spark主节点的IP地址或机器名
 
export SPARK_MASTER_IP=hadoop                                                            
 
#Spark本地的IP地址或机器名
 
export SPARK_LOCAL_IP=hadoop  

5.启动和关闭Spark集群

切换到spark安装目录的/sbin目录,启动spark集群,命令如下:

bash 复制代码
cd /usr/local/spark-3.5.6-bin-hadoop3/sbin
./star-all.sh

通过jps命令查看进程,如果既有Maste进程又有Worker进程,则说明spark启动成功。

切换至spark安装目录的/bin目录下,使用SparkPi计算Pi的值,命令如下:

bash 复制代码
cd /usr/local/spark-3.5.6-bin-hadoop3/bin
./run-example SparkPi 2

关闭集群,命令如下:

bash 复制代码
cd /usr/local/spark-3.5.6-bin-hadoop3
sbin/stop-all.sh

6.启动Spark Shell

复制代码
cd /usr/local/spark-3.5.6-bin-hadoop3/bin
./spark-shell

使用:quit可以退出spark shell

学习Spark程序开发,建议首先通过spark-shell交互式学习,加深Spark程序开发的理解。

Spark shell 提供了简单的方式来学习 API,也提供了交互的方式来分析数据。