HDFS实现其高可靠性的策略及机制
来源:互联网 发布:淘宝代购延长收货 编辑:程序博客网 时间:2024/06/06 03:12
分布式文件系统(HDFS)的高可靠性主要是由多种策略及机制共同作用实现的。
主要有:
冗余副本策略
可以指定数据文件的副本数量,默认是3;
保证所有的数据块都有副本,不至于在一个datanode宕机后,数据的丢失。
机架策略
集群一般放在不同机架上,机架间带宽要比机架内带宽要小;
HDFS具有“机架感知”能力,它能自动实现在本机架上存放一个副本,然后在其它机架再存放另一副本,这样可以防止机架失效时数据丢失,也可以提高带宽利用率。
心跳机制
Namenode周期性从datanode接收心跳信号和块报告,Namenode根据块报告验证元数据;
Namenode对没有按时发送心跳的datanode会被标记为宕机,不会再给它任何I/O请求;
datanode失效造成副本数量下降,并且低于预先设置的阈值,namenode会检测出这些数据块,并在合适的时机迕行重新复制;
引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等。
Namenode对没有按时发送心跳的datanode会被标记为宕机,不会再给它任何I/O请求;
datanode失效造成副本数量下降,并且低于预先设置的阈值,namenode会检测出这些数据块,并在合适的时机迕行重新复制;
引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等。
安全模式
Namenode启动时会先经过一个“安全模式”阶段,安全模式阶段不会产生数据写;
在安全模式阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的;
在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束;
当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数。
在安全模式阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的;
在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束;
当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数。
校验和
在文件建立时,每个数据块都产生校验和,校验和会保存在.meta文件内;
客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏;
如果正在读取的数据块损坏,则可以继续读取其它副本。
客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏;
如果正在读取的数据块损坏,则可以继续读取其它副本。
回收站
删除文件时,其实是放入回收站/trash,回收站里的文件可以快速恢复;
可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块。
可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块。
元数据保护
映像文件和事务日志是Namenode的核心数据,可以配置为拥有多个副本;
副本会降低Namenode的处理速度,但增加安全性。
副本会降低Namenode的处理速度,但增加安全性。
快照机制
支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态;
0 0
- HDFS实现其高可靠性的策略及机制
- HDFS实现其高可靠性的策略及机制
- HDFS 可靠性的设计实现
- HDFS的可靠性保证实现
- HDFS HA: 高可靠性分布式存储系统解决方案的历史演进
- HDFS HA: 高可靠性分布式存储系统解决方案的历史演进
- HDFS的可靠性
- HDFS的可靠性
- 基于 Netty 的帧调度策略,自行实现流量控制及可靠性通信
- HDFS高可靠性分布式存储系统解决方案
- HDFS高可靠性分布式存储系统解决方案
- HDFS的缺点及改进策略
- HDFS的缺点及改进策略
- HDFS的优点、缺点及改进策略
- JMS的可靠性机制
- FMS2015:NVMe SSD的高可靠性及数据保护
- HDFS使用QJM(Quorum Journal Manager)实现的高可用性以及备份机制
- HDFS的运行原理,如何实现HDFS的高可用
- UI11_BLOCK传值
- C++里单例模式的实现
- LoadRunner函数详解之web_url
- How to check the entitlements on my Application's Signature
- 自定义cell 通讯录
- HDFS实现其高可靠性的策略及机制
- java(08-13)
- Valid Parentheses 合法的括号匹配
- Java 基础 if和switch 练习记录
- iOS开发关于图片拉伸应用stretchableImageWithLeftCapWidth
- C小加 之 随机数(去重) C++ string之unique(),erase(),sort()使用小记
- Regionals 2014 Asia - Daejeon
- Android--在一个Button上显示不同类型的字体
- fatal error LNK1123: 转换到 COFF 期间失败