HDFS分布式文件系统学习(4)

网友投稿 619 2022-05-28

1.1.5 HDFS数据完整性保障

HDFS主要目的是保证存储数据完整性,对于各组件的失效,做了可靠性处理。

(1) 重建失效数据盘的副本数据

DataNode与NameNode之间通过心跳周期汇报数据状态,NameNode管理数据块是否上报完整,如果DataNode因硬盘损坏未上报数据块,NameNode将发起副本重建动作以恢复丢失的副本。

(2) 集群数据均衡

HDFS架构设计了数据均衡机制,此机制保证数据在各个DataNode上分布是平均的。

(3) 元数据可靠性保证

采用日志机制操作元数据,同时元数据存放在主备NameNode上。

快照机制实现了文件系统常见的快照机制,保证数据误操作时,能及时恢复。

(4) 安全模式

当节点硬盘故障时,进入安全模式,HDFS只支持访问元数据,此时HDFS上的数据是只读的,其他的操作如创建、删除文件等操作都会导致失败。待硬盘问题解决、数据恢复后,再退出安全模式。

HDFS3.0新特性

(1) 支持HDFS中的纠删码Erasure Coding

Erasure Coding纠删码技术简称EC,是一种数据保护技术.最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术.他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性.在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复.EC技术可以防止数据丢失,又可以解决HDFS存储空间翻倍的问题。

创建文件时,将从最近的祖先目录继承EC策略,以确定其块如何存储。与3路复制相比,默认的EC策略可以节省50%的存储空间,同时还可以承受更多的存储故障。

建议EC存储用于冷数据,由于冷数据确实数量大,可以减少副本从而降低存储空间,另外冷数据稳定,一旦需要恢复数据,对业务不会有太大影响。

(2) 基于HDFS路由器的联合

HDFS基于路由器的联合会添加一个RPC路由层,提供多个HDFS命名空间的联合视图。这与现有ViewFS和HDFS联合功能类似,不同之处在于安装表由服务器端由路由层而不是客户端进行管理。这简化了对现有HDFS客户端的联合集群的访问。与现有ViewFs和HDFS联合功能类似),不同之处在于安装表由服务器端由路由层而不是客户端进行管理。这简化了对现有HDFS客户端的联合集群的访问。

(3) 支持多个NameNode

允许用户运行多个备用NameNode。例如,通过配置三个NameNode和五个JournalNode,群集能够容忍两个节点的故障,而不是一个故障。

但是Active的NameNode始终只有1个,余下的都是Standby。 Standby NN会不断与JN同步,保证自己获取最新的editlog,并将edits同步到自己维护的image中去,这样便可以实现热备,在发生failover的时候,立马切换成active状态,对外提供服务。同时,JN只允许一个active状态的NN写入

(4) DataNode内部添加了负载均衡

支持单个Datanode上,不同硬盘间的数据balancer。老版本的hadoop只支持在Datanode之间进行balancer,每个节点内部不同硬盘之间若发生了数据不平衡,则没有一个好的办法进行处理。现在可以通过hdfs diskbalancer命令,进行节点内部硬盘间的数据平衡。该功能默认是关闭的,需要手动设置参数dfs.disk.balancer.enabled为true来开启。

HDFS分布式文件系统学习(4)

Hadoop 分布式

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:操作系统学习笔记(三十三)~I/O系统单元测试
下一篇:Redis持久化--RDB
相关文章