vlambda博客
学习文章列表

HDFS依然是存储的王者


1,关键组件
是NameNode和DataNode。
NameNode负责元数据管理,元数据包括了文件路径名、数据块ID以及存储位置等信息,相当于操作系统中的文件分配表(FAT)的角色。
DataNode负责文件数据的存储和读写操作,HDFS将数据分割为若干块(Block),每个DataNode负责存储一部分数据。客户端读写数据时,直接与DataNode通信。
2,高可用设计
HDFS的高可用设计分为4个层次,从低到高依次为,1)数据存储故障容错,主要靠存储校验和来检查。2)磁盘故障容错,DataNode会将该磁盘上存储的数据块ID报告给NameNode,从而启动新副本的赋值。3)整个DataNode挂了容错,通过DataNode和NameNode直接的心跳机制来发现问题,解决方案是重新备份该DataNode上所有的数据块。4)NameNode容错,通过主从热备的方式提高可用性。
3,关于NameNode主从热备的实现方案
(1)通过ZooKeeper进行选举,(2)DataNode向两个NameNode发送心跳,但只有主NameNode返回控制信息,(3)主从NameNode直接通过共享存储系统shared Edits同步文件信息。
4,系统高可用的通用策略
(1)冗余备份(2)失效转移(3)降级和限流