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

本文介绍Hadoop1.x版本中确保NameNode高可用性的两种主要措施:一是通过对fsimage和edits文件进行多备份来提高数据安全性;二是利用SecondaryNameNode作为冷备份,在NameNode数据丢失时提供恢复选项。
摘要由CSDN通过智能技术生成

在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保存的是自上一个检查点之后的临时镜像和日志,所以是冷备份。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只懒得睁眼的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值