Hadoop1中如何确保HDFS的高可靠(HA)

news/2024/5/20 2:31:44 标签: hadoop1, HDFS, 高可靠HA

在Hadoop1中NameNode是单节点,如何确保NameNode的高可靠呢?
共有两种措施:
第一:因为对于NameNode来说,其核心数据存储在fsimage和edits当中。所以第一个措施就是对这两个文件进行多备份。
从源码中我们可以发现:


这里写图片描述


fsimage和edits这两个文件存储在${hadoop.tmp.dir}/dfs/name文件夹下面,而从源码中我们可以发现:


这里写图片描述


hadoop.tmp.dir为NameNode和DataNode存放数据的公共目录。
所以我们的第一个措施就是在配置文件hdfs-site.xml中修改dfs.name.dir对应的数值,将其数值改成逗号分割的目录列表,这样fsimage和edits这两个核心数据就会被写到多个文件中,从而保证了数据的安全性。
在实际的操作中:

core-site.xml 配置文件中的内容:

这里写图片描述


hdfs-site.xml配置文件中的内容:

这里写图片描述


从hdfs-site.xml中我们可以发现,将dfs.name.dir的数值写成了多个逗号分割的目录列表。
现在我们查看一些实际的操作结果:

[root@hadoop dfs]# pwd
/usr/local/hadoop/tmp/dfs
[root@hadoop dfs]# ls
data  name  name2  namesecondary
[root@hadoop current]# pwd
/usr/local/hadoop/tmp/dfs/name/current
[root@hadoop current]# ls
edits  fsimage  fstime  VERSION
[root@hadoop current]# pwd
/usr/local/hadoop/tmp/dfs/name2/current
[root@hadoop current]# ls
edits  fsimage  fstime  VERSION

通过上面的操作我们可以发现,fsimage和edits存储到了多个文件夹中。

第二:因为NameNode中的核心数据fsimage和edits这两个核心的文件在Secondnamenode中也保存了一份,所以如果Namenode丢失数据的话,可以从Secondnamenode那里恢复数据,但是从Secondnamenode中恢复数据的时候肯定会出现数据的丢失,因为有一部分数据没有合并.

NameNode、DataNode、SecondaryNameNode的目录结构:

这里写图片描述


NameNode的目录结构:

这里写图片描述


SecondaryNameNode(CheckPointNode)的目录结构:

这里写图片描述

注意:CheckPointNode目录下的的文件和NameNode目录下的文件作用基本一致,不同之处在于CheckPointNode保存的是自上一个检查点之后的临时镜像和日志,所以是冷备份。


http://www.niftyadmin.cn/n/1159374.html

相关文章

java开发中的23种设计模式

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠…

conf/masters中masters的内容探究

在Hadoop1文件配置的过程中: masters的内容究竟是什么?? 今天在黄宜华《深入理解大数据》中找到了答案?68页 masters记录的是SecondaryNameNode的地址。

Excel - 自定义 快速访问工具栏

文章目录自定义快速访问工具栏a) 快速访问工具栏所在位置:b) 增加或删除对应的命令:c) 如何添加更多的命令方式1方式2自定义快速访问工具栏 a) 快速访问工具栏所在位置: b) 增加或删除对应的命令: 有 √ 就表示已经添加上了 c)…

HDFS中dfsadmin命令的使用

在hadoop中,管理员可以通过dfsadmin管理HDFS,常用的两个命令如下: -report 显示文件系统的基本数据 -safemode 维护HDFS的安全模式

Excel - 自定义功能区

自定义功能区 1)功能区、选项卡、分组 所在的位置 2)进行自定义添加一个功能区 a)选择 文件 b)选择 选项 c)选择 自定义功能区 d)新建选项卡、分组、重命名、添加命令 如下方截图,进行相应操…

使用TFS+GIT实现分布式项目管理

前言 GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具。 GIT相比传统的版本控制工具最大的优点是实现了分布式项目管理,开发者可以在本地做版本控制,极大的提高了开…

大数据系列修炼-Scala课程93

大数据系列修炼-Scala课程93 核心内容: 1、Akka第一个案例动手实战开发消息实体类 1、Akka第一个案例动手实战开发消息实体类 1>MapActor、ReduceActor、AggregateActor、MasterActor的相应作用: MapActor:将收到的消息进行单词切分;Re…

Excel - 自动填充

文章目录1)日期填充a) 填充每一天b) 仅填充工作日2)填充序列a) 方式1:那么可以通过序列的方式实现b) 方式2:选择拖动3)填充前一个单元格的后几位a) 错误演示:b) 正确的方式:1)日期填…