在大数据处理领域,Apache Spark 是一个强大且高效的分布式计算框架。本教程将带你从零开始,在 Debian 系统 上完成 Spark 集群部署,即使你是初学者也能轻松上手。我们将使用三台虚拟机(1个主节点 + 2个工作节点)来搭建一个小型 Spark 集群。
一、准备工作
在开始之前,请确保你有以下资源:
3 台运行 Debian 11(Bullseye)或更新版本的服务器/虚拟机 每台机器至少 2GB 内存和 2 核 CPU 稳定的网络连接,各节点之间能互相通信 具有 sudo 权限的用户账户二、配置主机名与 hosts 文件
为便于管理,我们给每台机器设置固定主机名:
主节点:spark-master 工作节点1:spark-worker1 工作节点2:spark-worker2在每台机器上执行以下命令(以主节点为例):
然后编辑 sudo hostnamectl set-hostname spark-master /etc/hosts
文件,在所有节点上添加如下内容:
请根据你的实际 IP 地址进行修改。 Spark 依赖 Java 运行环境。在所有节点上执行以下命令安装 OpenJDK 11: 验证安装是否成功: 应看到类似 "openjdk version "11.0.x" 的输出。 在所有节点上执行以下步骤: 然后执行 1. 配置主节点(spark-master) 进入 Spark 配置目录: 编辑 2. 配置工作节点 在主节点上创建 编辑 3. 同步配置到工作节点 使用 scp 将整个 Spark 目录复制到两个工作节点: 在主节点上执行: 成功启动后,你可以通过浏览器访问 Web UI: 在主节点运行一个简单的 Spark Pi 示例: 如果看到输出中包含 Pi 的近似值(如 3.14...),说明你的 Debian Spark集群部署 成功了! - 确保防火墙开放 7077(主节点)、8080(Web UI)等端口。 恭喜你!你已经成功完成了 Apache Spark集群搭建。现在你可以开始学习 Spark分布式计算教程,探索更多大数据分析的可能性。如果你是在 Debian系统安装Spark,本指南为你提供了完整的实践路径。192.168.1.10 spark-master192.168.1.11 spark-worker1192.168.1.12 spark-worker2 三、安装 Java 环境
sudo apt updatesudo apt install -y openjdk-11-jdk java -version 四、下载并配置 Spark
cd /optsudo wget https://dlcdn.apache.org/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgzsudo tar -xzf spark-3.5.0-bin-hadoop3.tgzsudo mv spark-3.5.0-bin-hadoop3 spark 设置环境变量(在所有节点的 ~/.bashrc 中添加): export SPARK_HOME=/opt/sparkexport PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbinexport PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.9.7-src.zip source ~/.bashrc
使配置生效。五、配置 Spark 集群
cd $SPARK_HOME/confcp spark-env.sh.template spark-env.sh spark-env.sh
,添加以下内容:export SPARK_MASTER_HOST=spark-masterexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 workers
文件(原 slaves 文件):cp workers.template workers workers
文件,添加工作节点主机名:spark-worker1spark-worker2 scp -r /opt/spark spark-worker1:/opt/scp -r /opt/spark spark-worker2:/opt/ 六、启动 Spark 集群
start-master.shstart-workers.sh 七、测试集群
spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://spark-master:7077 \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.5.0.jar \ 100 八、常见问题与优化建议
- 如果内存不足,可在 spark-env.sh
中调整 SPARK_WORKER_MEMORY
。
- 建议使用 SSH 免密登录,方便脚本自动化操作。
- 对于生产环境,考虑集成 HDFS 或 S3 作为存储层。
