对于个人学习 Spark 环境搭建而言,强烈建议选择 Ubuntu。
虽然 CentOS(及其继任者 Rocky Linux/AlmaLinux)在企业级生产环境中非常常见,但在个人学习和开发场景下,Ubuntu 在易用性、社区支持和生态兼容性上具有显著优势。以下是具体的对比分析和理由:
为什么首选 Ubuntu?
-
软件包管理与安装便捷性
- Ubuntu: 使用
apt包管理器,命令简单直观(如sudo apt install openjdk-11-jdk)。Spark 依赖的 Java (JDK)、Scala、Python (pip) 等工具在 Ubuntu 上的安装和版本切换通常比 CentOS 更顺滑。 - CentOS: 使用
yum或dnf。虽然功能强大,但默认源中的 JDK 版本往往较旧,或者需要配置额外的 EPEL 源才能找到较新的开发工具,对于初学者来说增加了不必要的配置步骤。
- Ubuntu: 使用
-
社区支持与教程匹配度
- 目前绝大多数 Spark 入门教程、博客文章以及 GitHub 上的示例代码,默认都是基于 Ubuntu 编写的。
- 如果你遇到报错,搜索"Spark + Ubuntu"得到的解决方案数量远多于"Spark + CentOS"。在 CentOS 上运行某些脚本时,经常需要处理路径权限、SELinux 策略或文件权限差异等问题,这会分散你学习 Spark 核心逻辑的精力。
-
容器化与云原生生态
- Docker 官方镜像中,Ubuntu 是构建 Spark 环境最基础的镜像之一。
- 许多大数据组件(如 Hadoop, Hive, Kafka)的官方文档在演示单机模式或伪分布式模式时,也倾向于使用 Ubuntu 作为基准。
-
桌面版体验(可选)
- 如果你是在本地电脑(非服务器)上搭建,Ubuntu Desktop 提供了良好的图形界面支持,方便查看日志、运行 Jupyter Notebook 或 IDE(如 IntelliJ IDEA / PyCharm),而 CentOS 通常只有命令行界面,对新手不够友好。
CentOS 的适用场景(仅供参考)
- 企业生产环境模拟:如果你的目标是未来直接进入一家主要使用 RHEL/CentOS 体系的公司工作,且公司强制要求运维技能必须包含 CentOS,那么你可以选择 CentOS 来提前适应其环境。
- 稳定性优先:CentOS 极其稳定,适合长期运行的服务,但对于“折腾”和“快速试错”的学习阶段,这种稳定性反而可能意味着软件更新滞后。
给个人学习者的具体建议
为了让你能最快地跑通 Spark,建议采用以下方案:
- 操作系统:安装 Ubuntu 20.04 LTS 或 Ubuntu 22.04 LTS。
- 提示:如果不想重装系统,也可以在 Windows 上使用 WSL2 (Windows Subsystem for Linux) 安装 Ubuntu,体验接近原生且不影响 Windows 其他应用。
- Java 环境:Spark 3.x 推荐使用 JDK 8 或 JDK 11。
- Ubuntu 下推荐直接使用
apt install openjdk-11-jdk,避免从官网下载 tar 包手动配置的麻烦。
- Ubuntu 下推荐直接使用
- Scala 版本:根据 Spark 版本选择对应的 Scala(例如 Spark 3.3+ 对应 Scala 2.12)。
- 部署模式:
- 初期建议先搭建 Standalone 伪分布式模式(单机多进程),这是理解 Spark 架构成本最低的方式。
- 进阶后再尝试 YARN 模式或 K8s 模式。
结论:除非你有特殊的职业需求必须掌握 CentOS 运维,否则请直接选择 Ubuntu。它能让你将 95% 的精力集中在 Spark 原理和代码学习上,而不是花在解决环境配置问题上。
云服务器