0
点赞
收藏
分享

微信扫一扫

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理


前言:本文为 hadoop 完全分布式实际环境中的真实测试,高可用测试、集群崩溃的处理不打算单独介绍,而是通过一个更加有整体感、顺序性的逻辑,将这两个知识嵌入整篇文章当中,来进行这两方面知识的学习,介绍与总结。

文章目录

  • ​​一、环境与运行情况说明​​
  • ​​二、模拟崩溃操作​​
  • ​​1、删除数据目录​​
  • ​​2、当前状态说明​​
  • ​​3、高可用测试​​
  • ​​三、HDFS 故障恢复​​
  • ​​1、终止进程服务​​
  • ​​2、删除 data、logs 目录​​
  • ​​3、格式化 hdfs 的 namenode​​
  • ​​4、重启 hdfs​​

一、环境与运行情况说明

当前环境为 Hadoop 完全分布式环境,共三台客户机,主机名分别为 hadoop102,hadoop103,hadoop104

具体配置过程与细则见:​​【Hadoop】完全分布式运行模式搭建流程​​

  • hadoop102 的运行情况:
  • 【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_重启

  • hadoop103 的运行情况:
  • 【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_人工智能_02

  • hadoop104 的运行情况:
  • 【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_03

可参照下表来更形象地表示三个客户机的运行情况:

hadoop102

hadoop103

hadoop104

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

二、模拟崩溃操作

1、删除数据目录

在 hadoop102 中,进入如下操作:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_04


在 hadoop103 中,进入如下操作:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_重启_05


因为删除了 data 目录,即 NameNode 的物理文件 /dfs/name 已被删除,而 NameNode 结点还仍然缓存在内存中,因此需要重启 hdfs,使之刷新生效(因为手动递归删除了 hadoop 目录下的 data 目录,导致 data 目录内部的 /dfs/name 也被删了,而这个 name 目录就与 NameNode 结点相关,而在当再重启 hdfs 时,经过测试,确实会生成 hadoop 目录下的 data 目录,但是 data 目录内部的 /dfs/name 并未生成)。

2、当前状态说明

目录状态说明: hadoop102、hadoop103 中都删除了 data 目录,hadoop104 中仍有 data 目录。

结点状态说明: hadoop102 中,重启 hdfs 后,hadoop102 中,少了 NameNode 结点。

当前 hadoop102 中的环境状态:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_重启_06


当前 hadoop103 中的环境状态:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_重启_07


当前 hadoop104 中的环境状态:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_人工智能_08

补充1:若 NameNode 这个用于存储元数据以及处理客户端发出的请求的结点出现故障,或是 NameNode 进程无法启动,那么相应的 hdfs 可视化 web 页面也是无法启动的,即 http://hadoop102:9870/explorer.html#/ 无法访问

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_人工智能_09


补充2:因为重启 hdfs 后,才使得 NameNode 从内存中消失,因此如果在删除了 hadoop102 中的 data 后,在重启 hdfs 之前,NameNode 仍存在于内存,因此相应的 hdfs 可视化 web 页面也可以查看。

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_big data_10

3、高可用测试

此时,hadoop102、hadoop103 中已无 data 目录,仅 hadoop104 中含有 data 目录,我们进行 hdfs 中文件的下载测试

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_11


可成功下载,因此这便是 hadoop 中,hdfs 的一种冗余备份的体现,同时也展现了它的高可用(靠)性

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_big data_12


接下来,我们将 hadoop104 中的 data 目录也删除

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_13


再进行下载测试

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hdfs_14


因为现在所有结点都没有数据了,所以自然是下载不下来的

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hdfs_15

三、HDFS 故障恢复

1、终止进程服务

在 hadoop102 中:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hdfs_16


在 hadoop103 中:(因为我之前测试了 mapreduce 的实例,因此也启动了 yarn 进程,这里也要停掉)

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_big data_17

2、删除 data、logs 目录

删除每个客户机中 hadoop 的 data、logs 目录

在 hadoop102 中:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_big data_18


在 hadoop103 中:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_19

在 hadoop104 中:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_重启_20

3、格式化 hdfs 的 namenode

在 hadoop102 中:

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_21

4、重启 hdfs

出现了 NameNode,而同时,hdfs 的 web 可视化页面也自然就可以访问了,不过数据也随着之前 data 目录的删除而删除,现在的 hdfs 是没有数据的,但是却可以正常运行,因此,本部分只是对于结点崩溃的恢复,数据的恢复处理,择日再学习。

【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_22


【Hadoop 3】HDFS:高可用/靠测试、集群崩溃的处理_hadoop_23


举报

相关推荐

0 条评论