1. 项目概述
作为一名长期从事大数据平台搭建的技术从业者,我深知在Ubuntu系统上构建完整Hadoop生态系统的痛点和难点。本文将分享我在Ubuntu 20.04 LTS上搭建Hadoop+Hive+HBase+Spark全栈环境的实战经验,这是一套经过生产环境验证的稳定版本组合。
这个环境特别适合以下场景:
- 大数据学习与教学实验环境
- 中小型企业数据仓库建设
- 数据分析和处理平台原型开发
- 分布式系统技术验证
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与核心思想
2.1 版本选型策略
大数据组件的版本兼容性至关重要。经过多次测试验证,我推荐以下版本组合:
| 组件 | 版本 | 选择理由 |
|---|---|---|
| 操作系统 | Ubuntu 20.04.6 LTS | 长期支持版,社区资源丰富,稳定性高 |
| Java | OpenJDK 8 | Hadoop官方推荐版本,与HBase等组件兼容性最佳 |
| Hadoop | 3.3.6 | 3.x系列的稳定版本,支持EC编码和GPU加速等新特性 |
| Hive | 3.1.2 | 经典稳定版,SQL兼容性好,文档资料丰富 |
| HBase | 2.4.13 | 2.4.x维护分支,与Hadoop 3.x兼容性良好 |
| Spark | 3.1.2 | 官方长期支持版本,预编译支持Hadoop 3.2+ |
| ZooKeeper | 3.6.3 | 独立部署版本,避免与HBase内置ZK冲突 |
| MySQL | 8.0 | 作为Hive元数据存储,性能优于Derby,支持多会话访问 |
提示:版本选择遵循"稳定优先"原则,避免使用过新或已停止维护的版本。这套组合经过上百次安装验证,各组件间API兼容性良好。
2.2 系统基础配置
用户与权限管理
建议创建专用用户来运行大数据服务,避免使用root账户带来的安全隐患:
bash复制# 创建hadoop用户并赋予sudo权限
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo usermod -aG sudo hadoop
# 切换至hadoop用户
su - hadoop
必备工具安装
这些基础工具将在后续安装和运维中发挥重要作用:
bash复制sudo apt update && sudo apt install -y \
vim curl wget tar git \
openssh-server net-tools \
libxml2-utils # 用于XML配置文件验证
工具链解析:
- curl/wget:用于下载组件包,建议同时安装以便灵活使用
- tar:解压.tar.gz格式的Hadoop生态组件包
- openssh-server:Hadoop集群节点间通信的基础
- net-tools:提供netstat等网络诊断工具
SSH免密登录配置
Hadoop集群管理需要NameNode无密码访问DataNode:
bash复制ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 验证配置
ssh localhost
exit
注意:如果是真实的多节点集群,需要将公钥分发到所有节点的authorized_keys文件中。
2.3 Java环境部署
Java是大数据生态的运行时基础,安装配置需特别注意:
bash复制sudo apt install -y openjdk-8-jdk
# 验证安装
java -version
# 应输出类似:openjdk version "1.8.0_392"
# 获取JAVA_HOME路径
JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
echo $JAVA_HOME
# 典型输出:/usr/lib/jvm/java-8-openjdk-amd64
永久环境变量配置:
bash复制sudo tee -a /etc/profile <<EOF
