以下是Spark Standalone集群搭建的关键步骤(基于Linux系统):
一、环境准备
- 安装Java
- 确保所有节点安装JDK 8+,配置 JAVA_HOME 环境变量。
- 关闭防火墙
bash
systemctl stop firewalld && systemctl disable firewalld
- 配置SSH免密登录
- 主节点生成密钥并分发到所有从节点:
bash
ssh-keygen -t rsa # 按提示完成,不设密码
ssh-copy-id slave1 # 替换为从节点主机名/IP
二、下载与解压Spark
- 下载Spark包
- 官网下载对应版本(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。
- 解压并配置
bash
tar -zxvf spark-3.5.0-bin-hadoop3.tgz -C /opt
cd /opt/spark-3.5.0-bin-hadoop3/conf
cp spark-env.sh.template spark-env.sh
- 编辑 spark-env.sh ,添加:
bash
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 替换为实际路径
export SPARK_MASTER_IP=master_hostname # 主节点主机名/IP
export SPARK_WORKER_MEMORY=2g # 从节点内存(按需调整)
三、配置集群节点
- 修改 slaves 文件
bash
cp slaves.template slaves
echo "slave1" >> slaves # 添加从节点主机名/IP,每行一个
echo "slave2" >> slaves
- 分发Spark到从节点
bash
scp -r /opt/spark-3.5.0-bin-hadoop3 slave1:/opt
scp -r /opt/spark-3.5.0-bin-hadoop3 slave2:/opt
四、启动集群
- 启动主节点
bash
cd /opt/spark-3.5.0-bin-hadoop3
sbin/start-master.sh
- 启动从节点
bash
sbin/start-slaves.sh
- 验证状态
- 主节点Web界面: http://master_ip:8080 ,查看从节点是否在线。
五、常用操作
- 停止集群:
bash
sbin/stop-slaves.sh && sbin/stop-master.sh
- 提交任务:
bash
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master_ip:7077 \
./examples/jars/spark-examples_*.jar 10
注意事项
-
确保所有节点时间同步(可使用 ntp 服务)。
-
从节点需预先创建与主节点相同的用户和目录权限。
-
内存和CPU资源根据实际硬件调整( SPARK_WORKER_CORES 参数)。