在大数据处理领域,Apache Spark 是一个非常流行的开源分布式计算框架。它能够高效地处理大规模数据集,并支持多种语言如 Scala、Java、Python 和 R。本文将详细讲解如何在 Ubuntu 系统上部署一个 Spark 集群,适合初学者操作,即使你是 Linux 小白也能轻松上手。
一、准备工作
在开始之前,请确保你有以下资源:
至少两台运行 Ubuntu 20.04 或更高版本的服务器(一台作为 Master,其余作为 Worker) 每台机器都已安装 Java 8 或 Java 11(Spark 依赖 Java 环境) 各节点之间网络互通,且能通过主机名或 IP 相互访问 拥有 sudo 权限的用户账户二、安装 Java 环境
首先,在所有节点上安装 OpenJDK。以 Ubuntu 20.04 为例:
sudo apt updatesudo apt install -y openjdk-11-jdk# 验证安装java -version
三、配置 SSH 免密登录
为了让 Master 节点能无密码访问所有 Worker 节点,需配置 SSH 免密登录。
在 Master 节点执行:
# 生成 SSH 密钥(一路回车)ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa# 将公钥复制到自身和所有 Worker 节点ssh-copy-id masterssh-copy-id worker1ssh-copy-id worker2# ... 根据你的 Worker 数量调整
四、下载并安装 Apache Spark
前往 Spark 官网 下载最新稳定版(建议选择 Pre-built for Apache Hadoop 的版本)。
在所有节点上执行以下命令:
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 sparksudo chown -R $USER:$USER spark
五、配置 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 集群
进入 Spark 配置目录:
cd $SPARK_HOME/conf
1. 创建
spark-env.sh文件:
cp spark-env.sh.template spark-env.shnano spark-env.sh
在文件中添加以下内容(根据你的实际 IP 修改):
export SPARK_MASTER_HOST=master_ip_addressexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
2. 创建
workers文件(旧版叫
slaves):
cp workers.template workersnano workers
在文件中写入所有 Worker 节点的主机名或 IP,例如:
worker1worker2
七、启动 Spark 集群
在 Master 节点执行:
$SPARK_HOME/sbin/start-master.sh$SPARK_HOME/sbin/start-workers.sh
启动成功后,打开浏览器访问
http://master_ip:8080,即可看到 Spark Web UI,确认所有 Worker 已注册。
八、测试集群
提交一个简单的 Pi 计算任务:
$SPARK_HOME/bin/spark-submit \ --master spark://master_ip:7077 \ $SPARK_HOME/examples/src/main/python/pi.py 10
如果输出结果中包含 Pi 的近似值,说明你的 Ubuntu Spark集群部署 成功!
九、常见问题与优化建议
确保防火墙开放 7077(Master)、8080(Web UI)、以及 Worker 通信端口 可为 Spark 配置内存参数(如 spark.executor.memory)以提升性能 生产环境中建议使用专用用户运行 Spark 服务通过本教程,你应该已经掌握了如何在 Ubuntu 上完成 Spark分布式计算 环境的搭建。无论是学习还是开发测试,这个集群都能为你提供强大的数据处理能力。
关键词回顾:Ubuntu Spark集群部署、Spark分布式计算、Apache Spark安装教程、Ubuntu搭建Spark集群。
