1. 项目概述:大数据平台搭建全景图
在数据驱动决策的时代,企业级大数据处理能力已成为核心竞争力。我最近在Ubuntu 20.04 LTS系统上完整部署了Hadoop生态体系,包含HDFS、YARN、Hive、HBase和Spark等核心组件。这个环境特别适合中小型团队进行数据仓库建设、实时分析应用开发和分布式计算研究。不同于单点安装教程,本文将重点揭示多组件联调时可能遇到的"暗礁",比如Hive与HBase的版本兼容陷阱、Spark内存配置的黄金比例等实战经验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 系统环境初始化
首先确保使用Ubuntu 20.04.6 LTS版本(内核5.15+),这个长期支持版本对Java生态兼容性最佳。我强烈建议使用全新的最小化安装,避免已有服务造成端口冲突。关键准备步骤:
-
创建专用用户(避免使用root):
bash复制sudo adduser hadoopadmin sudo usermod -aG sudo hadoopadmin -
配置SSH免密登录(集群部署必需):
bash复制ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys -
修改系统限制(防止大数据任务被kill):
bash复制echo -e "* soft nofile 65535\n* hard nofile 65535" | sudo tee -a /etc/security/limits.conf echo -e "fs.file-max = 1000000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
注意:所有节点必须同步配置上述参数,特别是ulimit设置,否则后期运行MapReduce任务时会出现"Too many open files"错误。
2.2 Java环境部署
Hadoop生态对Java版本极其敏感,经过实测对比,推荐采用Azul Zulu JDK 8u382:
bash复制sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
echo "deb https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list
sudo apt update
sudo apt install -y zulu8-jdk
验证安装后,需要精确配置JAVA_HOME。很多教程建议用/usr/lib/jvm/java-8-openjdk-amd64,但在多JDK共存环境下可能出错。更可靠的方法是:
bash复制readlink -f $(which java) | sed 's|/bin/java||'
将输出路径加入~/.bashrc:
bash复制export JAVA
