阅读量:2
以下是CentOS上配置HDFS容错机制(高可用)的核心技巧及关键步骤,基于搜索资源中的最佳实践整理:
一、基础架构规划
-
节点角色
- 至少部署 2个NameNode(1主1备)和 3个JournalNode(奇数防脑裂),DataNode根据数据规模扩展。
- 部署 ZooKeeper集群(3节点)用于协调NameNode状态切换。
-
网络要求
- 所有节点间网络互通,关闭防火墙或开放必要端口(如NameNode RPC端口8020、ZooKeeper端口2181等)。
二、核心配置文件修改
1. core-site.xml
- 指定集群默认文件系统路径及ZooKeeper集群地址:
<property> <name>fs.defaultFSname> <value>hdfs://myclustervalue> property> <property> <name>ha.zookeeper.quorumname> <value>zk1:2181,zk2:2181,zk3:2181value> property>
2. hdfs-site.xml
- NameNode高可用配置:
<property> <name>dfs.nameservicesname> <value>myclustervalue> property> <property> <name>dfs.ha.namenodes.myclustername> <value>nn1,nn2value> property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1name> <value>nn1-host:8020value> property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2name> <value>nn2-host:8020value> property> <property> <name>dfs.namenode.shared.edits.dirname> <value>qjournal://jn1:8485;jn2:8485;jn3:8485/myclustervalue> property> <property> <name>dfs.client.failover.proxy.provider.myclustername> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvidervalue> property> <property> <name>dfs.ha.automatic-failover.enabledname> <value>truevalue> property> <property> <name>dfs.ha.fencing.methodsname> <value>sshfencevalue> property> <property> <name>dfs.ha.fencing.ssh.private-key-filesname> <value>/root/.ssh/id_rsavalue> property>
3. JournalNode配置
- 在
hdfs-site.xml中指定JournalNode数据存储目录:<property> <name>dfs.journalnode.edits.dirname> <value>/var/lib/hadoop/journalnodevalue> property>
三、关键操作步骤
-
启动JournalNode
在所有JournalNode节点上执行:$HADOOP_HOME/sbin/hadoop-daemon.sh start journalnode -
格式化主NameNode
在主NameNode节点上执行(仅第一次需要):hdfs namenode -format -
同步元数据到备NameNode
在备NameNode上执行:hdfs namenode -bootstrapStandby -
启动服务
- 启动主备NameNode、ZKFC(故障转移控制器):
$HADOOP_HOME/sbin/start-dfs.sh - 启动DataNode服务:
$HADOOP_HOME/sbin/start-datanode
- 启动主备NameNode、ZKFC(故障转移控制器):
-
验证集群状态
- 查看NameNode状态:
hdfs dfsadmin -report - 检查ZooKeeper连接:
echo stat | nc zk1 2181 # 测试ZooKeeper服务是否正常
- 查看NameNode状态:
四、容错机制验证
-
手动模拟故障
- 停止主NameNode服务,观察备NameNode是否自动切换为Active状态:
# 在主NameNode节点执行 pkill -9 java # 强制停止NameNode - 通过
hdfs dfsadmin -report确认新主节点已接管服务。
- 停止主NameNode服务,观察备NameNode是否自动切换为Active状态:
-
数据一致性校验
- 写入测试数据后,停止部分DataNode,验证数据是否可正常读取(依赖副本机制):
hdfs dfs -put /local/file /hdfs/path # 写入数据 # 停止部分DataNode后再次读取 hdfs dfs -cat /hdfs/path/file
- 写入测试数据后,停止部分DataNode,验证数据是否可正常读取(依赖副本机制):
五、优化与注意事项
- 副本因子设置:
在hdfs-site.xml中通过dfs.replication配置默认副本数(通常3份,可根据节点数量调整)。 - 监控与告警:
部署Prometheus+Grafana监控集群状态,重点关注NameNode存活、JournalNode延迟、DataNode磁盘使用率等指标。 - 日志管理:
定期清理NameNode和DataNode的日志文件(路径由hadoop.tmp.dir配置),避免磁盘占满。
参考来源:
以上就是关于“CentOS HDFS容错机制配置技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm