hdfs 副本放置策略及快照功能简介

一. hdfs默认每个数据块都对应有三个副本,出于安全性和数据本地性等方面的考虑,hdfs对于副本放置的位置是有策略实现的,首先基于要求写数据块的请求方的位置归为两大类:
假设有如下的网络拓扑:
在这里插入图片描述

1.1 请求方来源于外部的客户端
a. 第一个副本的选择就可以随机一台机器,比如机器A
b. 第二个副本的选择就是选择和机器A属于同一个机房的机器上了,比如机器B
c.第三个副本的选择为了数据备份期间会选择另一个机房2下的机器,比如机器C

1.2 请求方来源于内部的DataNode机器,比如机器C
a.第一个副本的选择要选择和机器C相同的机器上,也就是本地机器C放置一份数据
b.第二个副本的选择就是选择和机器C属于同一个机房的机器上了,比如机器D
c.第三个副本的选择为了数据备份期间会选择另一个机房1下的机器,比如机器A

以上在寻找离当前机器最近的其他机器时,有一个距离的概念,距离的相关算法是最近公共祖先算法.
通过如下命令可以查看一个文件的数据块的详细位置信息:
hdfs fsck /tmp/1.txt -files -blocks -locations

二:hdfs的快照功能
2.1 创建快照的命令:hadoop fs -createsnapshot path snapshotname
2.2 比较两个快照的命令: hdfs snapshopdiff 快照1 快照2
2.3 快照的实现原理是存放对应目录的一个快照,他只会保存和当前目录文件中有变化的数据,没有变化的数据他是不记录的,实现原理类似于创建子进程时对内存的写拷贝操作,只有和当前目录中有变化的文件才需要记录起来
2.4 快照的用途:其一是可以恢复丢失的数据,也就是把这个目录下的数据恢复到快照时间点的数据
2.5 快照的用途: 其二利用快照的diff功能,结合DistCp命令可以实现集群数据间的同步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值