1. Hadoop完全分布式环境搭建概述
第一次接触Hadoop完全分布式环境搭建时,我被各种配置文件和服务启动顺序搞得晕头转向。经过多次实践后,我发现只要掌握几个关键点,零基础也能顺利完成搭建。完全分布式模式是Hadoop在生产环境中的标准部署方式,它将各个服务分散在不同的物理节点上运行,真正实现了存储和计算的分布式处理。
与伪分布式模式不同,完全分布式需要至少3台服务器(建议5台起步),分别部署NameNode、DataNode、ResourceManager、NodeManager等核心组件。这种架构不仅能充分发挥Hadoop的分布式计算能力,还能提供高可用性和容错机制。对于初学者来说,搭建过程可能会遇到各种"坑",比如主机名解析失败、SSH免密配置错误、防火墙端口未开放等。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与规划
2.1 硬件配置建议
我建议使用至少3台配置相同的服务器(物理机或虚拟机均可),每台建议配置:
- 4核CPU及以上
- 8GB内存及以上(DataNode建议16GB)
- 100GB磁盘空间(DataNode建议1TB以上)
- 千兆网络互联
在实际生产环境中,NameNode和ResourceManager最好部署在不同的物理节点上,避免单点故障。我的测试环境使用了5台CentOS 7虚拟机,配置如下:
- master: NameNode + ResourceManager
- slave1: DataNode + NodeManager
- slave2: DataNode + NodeManager
- slave3: DataNode + NodeManager
- slave4: SecondaryNameNode
2.2 软件版本选择
经过多次测试,我推荐以下稳定版本组合:
- JDK 1.8(必须使用Oracle JDK,OpenJDK可能会有兼容性问题)
- Hadoop 3.2.2(较新且稳定的版本)
- SSH服务(所有节点都需要安装)
注意:Hadoop 3.x与2.x在配置上有部分差异,初学者建议先学习3.x版本,避免后续升级带来的兼容性问题。
2.3 系统基础配置
在所有节点上执行以下操作:
- 设置主机名并配置hosts文件:
bash复制# 以master节点为例
hostnamectl set-hostname master
echo "192.168.1.101 master" >> /etc/hosts
echo "192.168.1.102 slave1" >> /etc/hosts
echo "192.168.1.103 slave2" >> /etc/hosts
echo "192.168.1.104 slave3" >> /etc/hosts
echo "192.168.1.105 slave4" >> /etc/hosts
- 关闭防火墙和SELinux(生产环境需谨慎):
bash复制systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- 安装必要工具:
bash复制yum install -y vim wget net-tools epel-release
3. Hadoop安装与配置
3.1 JDK安装与配置
在所有节点上安装JDK:
bash复制# 下载JDK(需要Oracle账号)
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u291-b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.tar.gz
# 解压并配置环境变量
tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local/
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_291' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
验证安装:
bash复制java -version
# 应显示类似:java version "1.8.0_291"
3.2 Hadoop安装
在master节点操作:
bash复制wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
tar -zxvf hadoop-3.2.2.tar.gz
