HDFS的可靠性策略

HDFS的可靠性策略是由多个机制共同维护的,可靠性体现在不同的状况下,下面我们来简单讲讲。

一、文件的完整

1、在文件刚刚开始建立的时候,文件中的每个数据块都会产生一个校验和(checksum),这个校验和会保存在.meta文件内部。
2、客户端获取数据的时候会和这个校验和进行对比,检查是否相同,从而发现数据块是否损坏。
2、如果说正在读取的数据块损坏,则可以读取其他副本。接着NameNode会标记该block块已经损坏,然后复制该block达到预期设置的文件备份数。
4、DataNode在其文件创建后三周验证其校验和(checksum)

补充:
  校验和–checksum是对一组数据(通常是一个文件)进行算法-加密哈希函数运算得到的结果。通过比较你手头文件和原始文件的校验和,能够确保你对原始文件的拷贝是真的并且不存在错误。
  校验和通常也被称之为哈希值、哈希和、哈希码,或简称为哈希–hash。

二、网络和机器失效

1、副本冗余策略
  可以指定数据文件的副本数量,默认是3;
  保证所有的数据块都有副本,不至于在一个datanode宕机后,数据出现丢失现象。
2、机架感知策略
  集群的机器一般处于不同机架上,机架间带宽要比机架内带宽要小;
  HDFS具有“机架感知”能力,它能自动实现在本机架上存放一个副本,然后在其它机架再存放另一副本,这样可以防止机架失效时数据丢失,也可以提高带宽利用率。
3、心态策略
  NameNode周期性从DataNode接收心跳信号和块报告,Namenode根据块报告验证元数据;
  NameNode对没有按时发送心跳的DataNode会被标记为宕机,不会再给它任何I/O请求;
  DataNode失效造成副本数量下降,并且低于预先设置的阈值;NameNode会检测出这些数据块,并在合适的时机迕行重新复制;
  引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等。

NameNode挂掉

1、主备切换
  集群一般会有俩个NameNode,一个处于active状态,一个处于睡眠状态,当第一个Name Node挂掉,集群中睡眠状态的NameNode就会启动。
2、镜像文件和操作日志磁盘存储
  当集群启动的时候,在NameNode启动的时候,如果是集群格式化后,或者说是第一次启动,会创建一个空的(fsimage)镜像空间和(edits)日志文件;否则的话会产生一个新的fsimage和edits,并加载上一次的fsimage和edits到这次的fsimage中。
3、镜像文件和操作日志可以存储多分,多磁盘存储

其他保障可靠性机制

1、快照
  支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态;
2、回收站机制
  删除文件时,其实是放入回收站/trash,回收站里的文件可以快速恢复;
  可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块。
3、安全模式
  Namenode启动时会先经过一个“安全模式”阶段,安全模式阶段不会产生数据写入;
  在安全模式阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的;
  在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束;
  当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值