[!NOTE]
操作系统 - Ubuntu 22.04
最后更新时间 - 2024-03-03
Spark 3 部署
0.安装并开启ssh
#更新系统软件
sudo apt update
sudo apt upgrade
#安装ssh工具
sudo apt install openssh-server
#防火墙允许ssh通行
sudo ufw allow ssh
1. 创建新用户并添加管理员权限
sudo adduser hadoop
sudo adduser hadoop sudo
2. 安装OpenJDK
sudo mkdir /export
sudo mkdir /export/software
sudo chmod 777 -R /export
mkdir /export/data
//上传OpenJDK
cd /export/software
tar -C /export/data/ -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u402b06.tar.gz
//配置环境变量
sudo chmod 777 /etc/profile
//添加:
export JAVA_HOME=/export/data/jdk8u402-b06
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
//使配置文件生效
source /etc/profile
//测试是否安装成功
java -version
3. 伪分布式安装Hadoop
//解压后 配置环境变量
export HADOOP_HOME=/export/data/hadoop3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
在/export/data/hadoop3/etc/hadoop/hadoop-env.sh中添加 JAVA 环境变量
//关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.0 配置免密登录
#配置免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
3.1 Hadoop配置文件
hadoop-env.sh
#取消对应注释并修改为对应java路径
export JAVA_HOME=/usr/java/jdk
core-site.xml
#修改并添加namenode启动ip为localhost,端口为9000
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
#设置副本数量为1,并设置hdfs的web访问地址为localhost的50070端口
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.http.address</name>
<value>localhost:50070</value>
</property>
</configuration>
3.2 yarn相关配置
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:8088</value>
</property>
</configuration>
3.3 格式化文件并启动Hadoop集群
#格式化
hdfs namenode -format
#启动hdfs和yarn
start-dfs.sh
start-yarn.sh
4. zookeeper安装与配置
echo '1' > /export/data/zookeeper391/zkData/myid
#1.上传 解压文件
tar -C /export/data/ -zxvf spark-3.5.1-bin-hadoop3.tgz
#创建数据文件夹
mkdir /export/data/zookeeper391/zkData
mkdir /export/data/zookeeper391/logs
#2.重命名文件夹 方便操作
mv apache-zookeeper-3.9.1-bin zookeeper391
#3.配置服务器编号
echo '1' > /usr/zookeeper/zkData/myid
#4.拷贝默认配置文件
cd /export/data/zookeeper391/conf
cp zoo_sample.cfg zoo.cfg
4.1 ZooKeeper相关配置
zoo.cfg
#添加
dataDir=/export/data/zookeeper391/zkData
dataLogDir=/export/data/zookeeper391/logs
/etc/profile
#添加
export ZOOKEEPER_HOME=/export/data/zookeeper391
export PATH=$ZOOKEEPER_HOME/bin:$PATH
4.2 启动服务
cd /export/data/zookeeper391/bin/
./zkServer.sh start
#停止服务
cd /export/data/zookeeper391/bin/
./zkServer.sh stop
5. Spark安装与配置
#1.解压
cd /export/software
tar -C /export/data/ -zxvf spark-3.5.1-bin-hadoop3.tgz
#重命名
cd /export/data/
mv spark-3.5.1-bin-hadoop3 spark3
#2.复制默认文件
cd /export/data/spark3/conf
cp workers.template workers
cp spark-env.sh.template spark-env.sh
5.1 配置文件
/export/data/spark3/conf/workers
#伪分布下包含localhost就够
localhost
export/data/spark3/conf/spark-env.sh
# 8080端口可能会和 Zookeeper 冲突,所以改成 8989
export JAVA_HOME=/export/data/jdk8u402-b06
export JRE_HOME=$JAVA_HOME/jre
SPARK_MASTER_WEBUI_PORT=8989
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=localhost
-Dspark.deploy.zookeeper.dir=/export/data/zookeeper391"
5.2 启动服务
/export/data/spark3/sbin/start-all.sh
#使用服务
/export/data/spark3/bin/spark-shell
#退出服务
:quit
使用jps命令查看 所有服务启动成功
成功进入Spark操控界面