在CentOS环境下搭建Hadoop集群,核心在于通过YUM源配置、JDK环境校验及SSH免密登录实现节点互联,建议采用CentOS 7或8 Stream版本以兼容2026年主流大数据组件,单节点伪分布式配置仅需16GB内存即可满足开发测试需求。
Hadoop CentOS 搭建核心前置准备
在正式部署前,必须确保底层操作系统与基础运行环境符合企业级生产标准,根据2026年大数据基础设施白皮书,CentOS 7虽已停止维护,但在存量系统中仍占据主导地位,而CentOS Stream 8/9已成为新建集群的首选。系统环境优化与网络配置
网络连通性是分布式系统稳定的基石,需执行以下关键步骤:- 静态IP配置:修改`/etc/sysconfig/networkscripts/`下的网卡配置文件,确保主节点(NameNode)与从节点(DataNode)IP固定,避免重启后IP漂移导致集群失联。
- 主机名映射:在`/etc/hosts`文件中添加所有节点的主机名与IP对应关系,192.168.1.100 master`,这是Hadoop识别节点身份的唯一依据。
- 防火墙与SELinux:执行`systemctl stop firewalld`及`setenforce 0`,永久关闭防火墙并禁用SELinux,防止端口通信被拦截,生产环境中建议仅开放9000、50070、8088等特定端口,而非完全关闭。
JDK环境校验与安装
Hadoop 3.x版本对Java版本有严格要求,2026年主流Hadoop发行版通常要求JDK 11或JDK 17。- 卸载冲突版本:使用`rpm qa | grep java`检查并卸载系统自带的OpenJDK,避免类加载冲突。
- 安装Oracle JDK:推荐使用Oracle JDK 17 LTS,解压至`/usr/local/java`,并配置`/etc/profile`环境变量,确保`JAVA_HOME`指向正确路径。
- 验证版本:执行`java version`,输出需包含`17.x.x`字样,且`javac`版本需一致。
Hadoop集群搭建实战步骤
本章节以Hadoop 3.3.6为例,详细解析伪分布式(单机多进程)与完全分布式(多机)的配置差异,对于寻求centos搭建hadoop单机版教程
的用户,伪分布式是最佳入门路径。配置文件详解
进入`$HADOOP_HOME/etc/hadoop/`目录,需重点修改以下四个核心文件:coresite.xml
配置HDFS的默认文件系统URI及临时目录。- fs.defaultFS:设置为`hdfs://localhost:9000`(伪分布式)或`hdfs://master:9000`(分布式)。
- hadoop.tmp.dir:指定本地临时目录,如`/opt/hadoop/tmp`,需确保该目录存在且权限属主为hadoop用户。
hdfssite.xml
配置HDFS副本策略。- dfs.replication:伪分布式设为`1`,完全分布式设为`3`,此参数直接影响数据安全性与存储成本,副本数过多会显著增加集群搭建与维护成本。
mapredsite.xml
指定MapReduce运行框架。- mapreduce.framework.name:设置为`yarn`,启用YARN资源调度器,这是2026年标准生产环境的标配。
yarnsite.xml
配置YARN资源管理器。- yarn.resourcemanager.hostname:指定ResourceManager所在节点。
- yarn.nodemanager.auxservices:设置为`mapreduce_shuffle`,确保MapReduce任务能正常获取数据。
SSH免密登录与格式化
这是新手最容易踩坑的环节。- 生成密钥:执行`sshkeygen t rsa P '' f ~/.ssh/id_rsa`,一路回车即可。
- 授权公钥:执行`cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys`,并赋予`600`权限。
- 验证连通性:执行`ssh localhost`,若能无需密码登录即成功。
- 格式化NameNode:首次启动前必须执行`hdfs namenode format`,注意:此操作不可重复执行,否则会导致ClusterID不一致,集群无法启动。
启动验证与常见问题排查
执行`startdfs.sh`和`startyarn.sh`后,通过以下指标验证集群健康度。| 检查项 | 命令/方式 | 预期结果 | 故障原因 |
|---|---|---|---|
| 进程检查 | jps | 显示NameNode, DataNode, ResourceManager等进程 | 进程缺失通常因日志报错或端口占用 |
| Web UI | http://localhost:9870 | Datanodes Live Nodes显示为1(伪分布)或集群节点数 | 防火墙未关闭或配置错误 |
| 日志排查 | tail f /opt/hadoop/logs/hadoop*namenode*.log | 无ERROR级别日志 | 磁盘空间不足或权限问题 |

