大数据开发:Hadoop HDFS是如何保证高可用性的

在Hadoop生态当中,HDFS作为分布式文件系统,主要负责数据存储任务的完成,而越是大规模的数据存储,就需要考虑到高可用性,才能为整个系统框架提供更稳固的底层支持。今天的大数据开发学习分享,我们就来讲讲,Hadoop HDFS是如何保证高可用性的。
 

大数据学习:Hadoop HDFS如何保证高可用


从不同的层面来说,HDFS都是为系统的高可用做了相应的准备的,具体来说:

1、数据存储故障容错

磁盘介质在存储过程中受环境或者老化影响,其存储的数据可能会出现错乱。HDFS的应对措施是,对于存储在DataNode上的数据块,计算并存储校验和(CheckSum)。在读取数据的时候,重新计算读取出来的数据的校验和,如果校验不正确就抛出异常,应用程序捕获异常后就到其他DataNode 上读取备份数据。

2、磁盘故障容错

如果DataNode监测到本机的某块磁盘损坏,就将该块磁盘上存储的所有 BlockID报告给NameNode,NameNode检查这些数据块还在哪些DataNode上有备份,通知相应的DataNode服务器将对应的数据块复制到其他服务器上,以保证数据块的备份数满足要求。

3、DataNode 故障容错

DataNode会通过心跳和NameNode保持通信,如果DataNode超时未发送心跳,NameNode就会认为这个DataNode已经宕机失效,立即查找这个 DataNode上存储的数据块有哪些,以及这些数据块还存储在哪些服务器上,随后通知这些服务器再复制一份数据块到其他服务器上,保证HDFS存储的数据块备份数符合用户设置的数目,即使再出现服务器宕机,也不会丢失数据。

4、NameNode故障容错

NameNode是整个HDFS的核心,记录着HDFS文件分配表信息,所有的文件路径和数据块存储信息都保存在NameNode,如果NameNode故障,整个 HDFS系统集群都无法使用;如果 NameNode上记录的数据丢失,整个集群所有DataNode存储的数据也就没用了。

所以,NameNode高可用容错能力非常重要。NameNode采用主从热备的方式提供高可用服务。集群部署两台NameNode服务器,一台作为主服务器提供服务,一台作为从服务器进行热备,两台服务器通过ZooKeeper选举,主要是通过争夺znode锁资源,决定谁是主服务器。而DataNode则会向两个 NameNode同时发送心跳数据,但是只有主NameNode才能向DataNode返回控制信息。

关于大数据开发学习,Hadoop HDFS如何保证高可用,以上就是简单的内容介绍了。正是因为HDFS的这些策略,才使得HDFS具备高可用性,为运行于Hadoop之上的应用,提供稳固的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值