HDFS在CentOS上的配置教程有哪些
小樊
49
2026-01-08 06:57:50
CentOS上配置HDFS的精选教程与实操要点
一、入门与单机快速上手
- 目标:在单台CentOS上跑通HDFS,适合学习与功能验证。
- 核心步骤:
- 安装Java 8(OpenJDK或Oracle JDK),配置环境变量(如JAVA_HOME、HADOOP_HOME、PATH)。
- 下载并解压Hadoop 3.x(常见版本如3.3.1)到如**/opt/hadoop-3.3.1**。
- 配置core-site.xml:设置默认文件系统为hdfs://localhost:9000;配置hdfs-site.xml:副本数dfs.replication=1,并指定dfs.namenode.name.dir与dfs.datanode.data.dir本地目录。
- 首次启动前执行hdfs namenode -format初始化元数据。
- 启动HDFS:执行start-dfs.sh;用jps检查进程(应见到NameNode、DataNode)。
- 访问NameNode Web UI:http://<主机IP>:50070(旧版)或http://<主机IP>:9870(Hadoop 3.x 常用)。
二、多节点集群部署教程
- 目标:在多台CentOS机器上部署可扩展的HDFS集群(1个NameNode + 多个DataNode)。
- 核心步骤:
- 前置:各节点安装Java 8、配置**/etc/hosts或DNS解析、建议配置静态IP**,并打通SSH免密登录(便于脚本启动)。
- 安装与目录:同版本Hadoop解压到统一路径(如**/usr/local/hadoop**),统一用户与目录权限。
- 配置要点:
- core-site.xml:设置fs.defaultFS=hdfs://namenode:9000。
- hdfs-site.xml:设置dfs.replication=3(生产建议),并分别配置dfs.namenode.name.dir与dfs.datanode.data.dir为各节点本地存储路径。
- 在workers(或旧版slaves)文件中列出所有DataNode主机名。
- 初始化与启动:在NameNode执行hdfs namenode -format,随后用start-dfs.sh启动集群。
- 验证:用hdfs dfsadmin -report查看Live Nodes;访问NameNode Web UI核对节点与存储状态。
三、高可用HA部署教程
- 目标:消除单点故障,构建NameNode HA(通常配合ZooKeeper与JournalNode)。
- 核心步骤:
- 架构准备:至少3台JournalNode(奇数台便于选举),2个NameNode(Active/Standby),并部署ZooKeeper集群。
- 配置关键项(示例思路):
- 在hdfs-site.xml中定义dfs.ha.namenodes.、两个NameNode RPC地址、JournalNode编辑地址、dfs.namenode.shared.edits.dir、故障转移代理类**dfs.client.failover.proxy.provider.**等。
- 在core-site.xml中将fs.defaultFS指向nameservice(如hdfs://mycluster)。
- 初始化与启动:
- 格式化Active NameNode;启动JournalNode;在备用NameNode执行hdfs namenode -bootstrapStandby同步元数据;启动ZKFC(故障转移控制器)。
- 验证:通过Web UI与hdfs haadmin工具检查HA状态与Failover是否正常。
四、配置与排错要点清单
- 环境与系统
- 使用Java 8(Hadoop 3.x对Java 11/17的支持需按发行版说明选择),各节点时间同步(如chrony或NTP),统一Hadoop版本与配置。
- 网络与防火墙
- 建议配置静态IP与**/etc/hosts解析;开放常用端口:9000(RPC)、50070/9870(NameNode Web)、50010/50020/50075/50090(DataNode相关)等,或临时关闭firewalld**用于测试。
- 目录与权限
- 为NameNode/DataNode目录设置专属本地路径并赋予hadoop用户权限(如chown -R hadoop:hadoop /usr/local/hadoop)。
- 常见故障排查
- DataNode未注册:检查workers名单、SSH免密、防火墙、存储目录权限与磁盘空间。
- 启动失败/端口占用:用jps与netstat定位进程与端口;查看**$HADOOP_HOME/logs下对应日志(如namenode.log、datanode.log**)。