spark集群搭建
spark集群搭建
- 1. 安装Java
- 2. 下载Spark
- 3. 上传文件
- 4. 配置环境变量
- 5. 配置Spark集群
- 6. 将spark分发到其他节点
- 7. 启动Spark集群
- 8. 运行Spark应用程序
- 参考博客
本文主要介绍Spark集群的简单搭建,不需要配置其他服务,对spark感兴趣可以先搭建试试
我的集群规划如下:
haoop101 | haoop102 | haoop103 | |
---|---|---|---|
spark | worker | worker | master |
搭建Spark集群需要以下步骤:
1. 安装Java
Spark使用Java开发,所以需要先安装Java。
官网下载地:https://www.oracle.com/java/technologies/downloads/#java8
我这里使用的是jdk-8u333-linux-x64.tar.gz,如果官网慢可以使用我分享的网盘
链接1:百度网盘 提取码:1111
链接2:盼兮网盘 提取码:GuMNm
2. 下载Spark
可以从官网下载Spark的最新版本:https://archive.apache.org/dist/spark/spark-3.4.3/
也可以使用以下命令下载:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz
3. 上传文件
把spark和jdk压缩包上传到/opt/software
将这两个文件解压到/opt/module
tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/
tar -zxvf spark-3.4.3-bin-hadoop3.tgz -C /opt/module/
重命名spark-3.4.3-bin-hadoop3为spark-3.4.3
cd /opt/module
mv spark-3.4.3-bin-hadoop3/ spark-3.4.3
4. 配置环境变量
配置java和spark的环境
vim /etc/profile.d/my_env.sh
加入如下文本
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin# SPARK_HOME
export SPARK_HOME=/opt/module/spark-3.4.3
export PATH=$PATH:$SPARK_HOME/bin
然后执行以下命令使配置生效:
source /etc/profile.d/my_env.sh
5. 配置Spark集群
进入spark的conf目录,修改配置文件
cd /opt/module/spark-3.4.3/conf/
cp workers.template workers
在workers文件中添加work节点,加入的内容是服务器的hostname
hadoop101
hadoop102
hadoop103
在集群上的每个节点上创建一个spark-env.sh
文件,用于配置Spark集群的环境变量。
cp spark-env.sh.template spark-env.sh
在spark-env.sh
文件中添加以下内容:
export SPARK_MASTER_HOST=<master节点的主机名或IP>
export SPARK_MASTER_PORT=<master节点的端口>
export SPARK_WORKER_CORES=<每个工作节点的核心数>
export SPARK_WORKER_MEMORY=<每个工作节点的内存>
export SPARK_WORKER_INSTANCES=<工作节点的实例数>
例如:(我这里是以hadoop103为主节点)
export SPARK_MASTER_HOST=hadoop103
export SPARK_MASTER_IP=192.168.17.136
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=2g
export SPARK_WORKER_INSTANCES=2
export JAVA_HOME=/opt/module/jdk1.8.0_333
# export HADOOP_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
# export HADOOP_HOME=/opt/module/hadoop-3.1.3
6. 将spark分发到其他节点
用scp将hadoop101中的jdk、spark拷贝到hadoop102、hadoop103
scp -r /opt/module/jdk1.8.0_333/ root@hadoop102:/opt/module/jdk1.8.0_333
scp -r /opt/module/jdk1.8.0_333/ root@hadoop103:/opt/module/jdk1.8.0_333
scp -r /opt/module/spark-3.4.3/ root@hadoop102:/opt/module/spark-3.4.3
scp -r /opt/module/spark-3.4.3/ root@hadoop103:/opt/module/spark-3.4.3
环境配置文件也要拷贝
scp -r /etc/profile.d/my_env.sh root@hadoop102:/etc/profile.d/my_env.sh
scp -r /etc/profile.d/my_env.sh root@hadoop103:/etc/profile.d/my_env.sh
然后在hadoop102、hadoop103上source 一下
source /etc/profile.d/my_env.sh
7. 启动Spark集群
在master(hadoop103)节点上执行以下命令启动Spark集群:
cd /opt/module/spark-3.4.3/
./sbin/start-all.sh
现在就可以通过hadoop103的ip:8080访问spark的web页面
然后可以在工作节点上执行以下命令启动/停止工作节点:
./sbin/stop-worker.sh spark://<master节点的主机名或IP>:<master节点的端口>
./sbin/start-worker.sh spark://<master节点的主机名或IP>:<master节点的端口>
例如:
# 停止主节点工作流
./sbin/stop-worker.sh spark://master:7077
可以看到hadoop103节点的工作流已经停止
8. 运行Spark应用程序
可以使用以下命令在集群上运行Spark应用程序:
spark-submit --master spark://<master节点的主机名或IP>:<master节点的端口> --class <应用程序的入口类> <应用程序的Jar包>
例如:
spark-submit --master spark://master:7077 --class com.example.MyApp my-app.jar
以上是基本的Spark集群搭建步骤,你可以根据实际需要进行更详细的配置和优化。
参考博客
- Centos7上安装配置Spark
- CentOS7 搭建Spark集群环境