HDFS(Hadoop Distributed File System)

Hadoop分布式文件系统,为Hadoop这个分布式计算框架提供高性能、高可靠、高可扩展的存储服务。

1.1 HDFS系统架构


HDFS的系统架构是典型的主/从架构,包括一个NameNode节点(主节点)和多个DataNode节点(从节点),并提供应用程序访问接口。


NameNode是整个文件系统的管理节点,它负责文件系统名字空间(Namespace)的管理与维护,同时负责客户端文件操作的控制以及具体存储任务的管理与分配。

DataNode提供真实文件数据的存储服务。

1.2 HA (High Availability)定义


HA的定义为系统对外正常提供服务时间的百分比:MTTF/(MTTF+MTTR)*100%


高可靠性更多的是对系统自身而言,它是系统可靠程度的一个指标,而HA则更多的是从系统对外的角度来说的,除了包含系统正常工作的能力,它还强调系统中止服务后迅速恢复的能力。




1.3 HDFS HA原因分析及应对措施


影响HDFS HA的因素可从可靠性和可维护性两方面进行分析。


可靠性:由于NameNode只有一个,且负责整个HDFS文件系统的管理和控制,容易造成单点故障(SPOF)。DataNode发生故障时,可以访问其他DataNode的副本,不会影响HDFS对外正常服务。


可维护性:当NameNode重新启动时,需要加载磁盘上的元数据文件。所以,NameNode的可维护性取决于元数据的可靠性以及NameNode服务恢复时间。


1.4 现有HDFS HA解决方案


主要是从使用者的角度出发,提高元数据的可靠性,减少NameNode服务恢复时间。




提高元数据的可靠性措施主要是对元数据进行备份。




减少NameNode服务恢复时间的措施主要有两种思路:


第一种基于NameNode重启恢复服务的方式,对NameNode自身的启动过程进行优化。


第二种则是启动一个NameNode的热备(Warm standby)节点,发生故障时接替使用。


第一种思路尽管进行了优化,但仍受文件系统规模的限制,第二种则突破了这种限制。




现有比较成熟的HA解决方案:




1、Hadoop的元数据备份方案




利用Hadoop 自身的Failover 措施,将元数据信息保存到多个目录。通常的做法是选择一个本地目录,一个远程目录(通过NFS进行共享),当NameNode 发生故障时,可以启动备用机器的NameNode ,加载远程目录的元数据信息,提供服务。


优点:


  • Hadoop自带机制,成熟可靠,使用简单,无需开发。
  • 元数据有多个备份,有效保证元数据的可靠性,并且内容保持最新状态。


缺点:


  • 元数据需要同步写入多个备份目录,效率低于单个NameNode 。
  • 没有做到热备,HDFS恢复服务时,需要重新启动NameNode ,恢复时间与文件系统规模成正比。
  • NFS共享的可靠性问题,且多个目录中任何一个目录的保存因为异常而阻塞,将会导致整个HDFS的操作阻塞。


2、Hadoop的Secondary NameNode 方案



启动一个Secondary NameNode 节点,定期从NameNode节点上下载元数据信息(元数据镜像fsimage和元数据操作日志edits),然后将fsimage和edits合并,生成新的fsimage,在本地保存,并将其推送给NameNode,同时重置NameNode上的edits。


优点:


  • Hadoop自带机制,成熟可靠,使用简单,无需开发。
  • Secondary定期做Checkpoint,可保证各个Checkpoint阶段的元数据的可靠性,同时,进行fsimage和edits的合并,有效限制edits的大小,防止其无限增长。


缺点:


  • 没有做到热备,HDFS恢复服务时,需要重新启动NameNode ,恢复时间与文件系统规模成正比。
  • Secondary NameNode 保存的只是Checkpoint 时刻的元数据,不是最新数据 ,存在一致性问题。



3、Hadoop的Checkpoint Node 方案




Checkpoint Node 方案与Secondary NameNode 的原理基本相同,只是实现方式不同,该方案利用Hadoop的Checkpoint机制进行备份。




4、Haddop的Backup Node 方案




5、DRBD方案




6、Facebook 的Avatarnode 方案




1.5 方案优缺点比较






方案名称

切换时间

元数据一致性

是否做checkpoint

使用复杂度

成熟度

相关资料

元数据备份


一致




较多

Secondary NameNode


不一定




较多

Checkpoint Node


不一定




较少

Backup Node


一致




较少

DRBD


一致





AvatarNode


一致