HDFS的高可用性HA配置实战(下)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: HDFS的高可用性HA配置实战(下)

初始化journal node的数据

hdfs namenode -initializeSharedEdits

执行完后,可以发现三台服务器所配的路径/home/hadoop-sny/bigdata/dfs/journal/data下都有了edit.log与fsimages文件


微信图片_20220618201503.png


d. 对比三台机器current路径下的最后一条edit.log,都是一样的。

执行完后,可以去看一下三台机器此路径下的current的edit.log与namenode路径下的edit.log做比较,其实最后一条数据是一样的。


微信图片_20220618201515.png


微信图片_20220618201518.png


e. 如果是全新的搭建HA的HDFS集群,在执行第a步后,就可以直接在master中格式化整个HDFS即可,(因为此处是在原本有HDFS的基础上搭建,所以,此步省略)

hdfs namenode -format


5. 校验HA配置

a. 启动HDFS

start-dfs.sh

会发现我们的namenode会从两台机器上启动


微信图片_20220618201538.png


b. 查看nn1、nn2这个nameNode的状态(即master、slave1的状态)

hdfs haadmin -getServiceState nn1

hdfs haadmin -getServiceState nn2


微信图片_20220618201555.png


发现两个都是standby状态,需要手动设置为活跃:

c. 将nn1设置为active状态

hdfs haadmin -transitionToActive nn1

如需设置为Standby,可参考下面命令

hdfs haadmin -transitionToStandby nn1


image.png


至此可以手动设置HDFS的namenode的状态!


0x03 配置Zookeeper自动切换状态


1. 配置hdfs-site.xml、core-site.xml

a. 停止HDFS

stop-dfs.sh

b. 配置master上的hdfs-site.xml,添加内容:

vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
</property>


c. 配置master上的core-site.xml,添加内容:

vi $HADOOP_HOME/etc/hadoop/core-site.xml


<property>
        <name>ha.zookeeper.quorum</name>
        <value>master:2181,slave1:2181,slave2:2181</value>
</property>


d. 同步配置文件到slave1和slave2上:

~/shell/scp_all.sh $HADOOP_HOME/etc/hadoop/hdfs-site.xml

~/shell/scp_all.sh $HADOOP_HOME/etc/hadoop/core-site.xml


2. 初始化ZooKeeperFailoverController

a. 启动三台服务器的Zookeeper,不启动会报错

zkServer.sh start

b. 初始化ZooKeeperFailoverController,在master中执行

~/bigdata/hadoop-2.7.5/bin/hdfs zkfc -formatZK


image.png


执行完后,进入ZK的客户端,会发现多了一个hadoop-ha的节点,此节点用于进行master的选举。

c. 在master中执行

start-dfs.sh

3. 验证Zookeeper自动切换状态结果

a. 查看进程及两个namenode的状态


微信图片_20220618201708.png


http://master:50070


微信图片_20220618201722.png


http://slave1:50070

微信图片_20220618201725.png


b. 可以查看集群的内容(如果是standby状态,WEB UI界面是看不到的)

hadoop fs -ls hdfs://mycluster/


微信图片_20220618201746.png


c. 杀死active的namenode看看namenode的active是否会转换:

hadoop-daemon.sh stop namenode

或者kill掉master上的namenode进程,重新回去查看50070端口,发现状态slave1已切换成active,至此,所有配置以及完成。


微信图片_20220618201801.png


0xFF 总结


如果发现自己状态无法自动改变,请检查hdfs-site.xml里面的配置的私钥路径(dfs.ha.fencing.ssh.private-key-files)是否正确,然后重新初始化zkfc,然后重新启动ZK与HDFS集群。

查看日志:

tail -fn200 /home/hadoop-sny/bigdata/hadoop-2.7.5/logs/hadoop-hadoop-sny-zkfc-master.log

如报错:java.lang.RuntimeException: Unable to fence NameNode at slave1/192.168.128.132:8020

可能是没有安装fuser,用root用户在master和slave1上安装fuser:

yum -y install psmisc


更多原因可参考此文章:Hadoop HA:active节点失效后standby 节点无法被拉起


请与HBase的HA配置做一下对比。

学习,其实用非HA模式也够了,有需要请看下面的教程:HDFS恢复非HA状态,而且,我的教程也将会采取非HA模式进行开发,如需参考更多,请恢复非HA状态,感谢大家的支持。


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
存储 分布式计算 安全
bigdata-07-Hdfs原理到实战
bigdata-07-Hdfs原理到实战
94 0
|
6月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
692 0
|
5月前
|
存储 分布式计算 Hadoop
Hadoop Distributed File System (HDFS): 概念、功能点及实战
【6月更文挑战第12天】Hadoop Distributed File System (HDFS) 是 Hadoop 生态系统中的核心组件之一。它设计用于在大规模集群环境中存储和管理海量数据,提供高吞吐量的数据访问和容错能力。
618 4
|
1月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
141 5
|
1月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
39 3
|
1月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
79 4
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
69 4
|
1月前
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
38 2
|
5月前
|
消息中间件 SQL Kafka
实时计算 Flink版产品使用问题之独立集群与hdfs集群不在一起,何配置checkpoint目录为hdfs
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
存储 分布式计算 监控
分布式系统详解--框架(Hadoop-HDFS的HA搭建及测试)
分布式系统详解--框架(Hadoop-HDFS的HA搭建及测试)
63 0
下一篇
无影云桌面