找回密码
 立即注册
查看: 2729|回复: 0

Hadoop+R专题:HDFS高可用性解决方案

[复制链接]
发表于 2015-1-9 09:50:10 | 显示全部楼层 |阅读模式
本帖最后由 R语言微信号 于 2015-1-9 09:52 编辑

Hadoop+R专题:HDFS高可用性解决方案

米来   R语言中文网










在上一节中我们详细的介绍了元数据,我们知道元数据是数据的数据,如果元数据发生破坏,整个HDFS就失去了意义。元数据的备份是HDFS高可用性的重要保证之一。下面我们将一起来探讨HDFS的高可用性。
HA(High Available), 高可用性群集是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上,通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%
具体HA衡量标准:                                 
99%一年宕机时间不超过4
99.9%一年宕机时间不超过10小时
99.99%一年宕机时间不超过1小时
99.999%一年宕机时间不超过6分钟
         目前来说,HDFS的高可用性主要靠下面几种方式来解决。
1、元数据备份方案NameNode节点发生故障,不能正常提供服务时,往往需要重启NameNode。而NameNode在启动时,需要读取镜像文件和日志文件到内存,组织成内存元数据,构造树形的文件系统。因此,当元数据文件损坏时,HDFS中的NameNode将无法正常启动,可用性就会减低。
元数据的可靠性影响了HDFS的可维护时间,从而影响了HDFSHA。当DataNode无法启动时,HDFS会自动启动该DataNode上所有数据的复制任务,将丢失的数据恢复到其他的DataNode节点上,因此DataNode不影响HDFSHA
终上所述,可见DataNode的重要性,也就是元数据的重要性,如何保证元数据可靠性是十分关键的。目前,对元数据进行备份是提高数据可靠性的主要措施。
Hadoop的元数据备份方案是通过Hadoop本身的Failover实现的。NameNode将元数据信息保存到多个目录。通常有2个副本,一个保存在本地目录,一个保存在远程目录。当NameNode发生故障时,启动备用机器上的NameNode,加载远程目录里的元数据信息,恢复服务。
2、Secondary Node方案我们已经知道,在NameNode启动时,首先从一个镜像文件中读取HDFS的状态,接着应用日志文件的edits操作。然后它将新的HDFS状态写入镜像文件中,并使用一个空的edits开始正常操作。因为NameNode只有在启动阶段才能合并镜像文件和日志文件,所以久而久之日志文件会变得非常大,特别是对大型的集群。日志文件太大的话,下次启动会花费很长的时间。
SecondaryNameNode定期合并镜像文件和日志文件,将edits日志文件大小控制在合理的范围内。因为内存需求和NameNode在一个数量级上,所以通常SecondaryNameNode和NameNode运行在不同的机器上。它通过bin/start-dfs.sh 在conf/masters中指定的节点上启动。
这个节点的检查点进程启动时由两个配置文件的配置项控制的。
Fs.checkpoint.period,指定连续两次的检查点的最大间隔,默认值是1小时。
Fs.checkpoint.size定义了edits日志文件的最大值,一旦超过这个值就会导致强制执行检查点。默认值是64MB。
3、 CheckPoint Node方案如果NameNode上除了最新的检查点以外,所有的其他的历史镜像和edits文件都丢了,NameNode可以引入这个最新的检查点。
在配置参数dfs.name.dir指定的位置建立一个空文件夹。把检查点目录的位置赋值给配置参数fs.checkpoint.dir。启动NameNode,并加上– importCheckpoint,NameNode会从fs.checkpoint.dir目录读取检查点,并把它保存在dfs.name.dir目录下,如果dfs.name.dir目录下有合法的镜像文件,NameNode会启动失败。NameNode会检查fs.checkpoint.dir目录下镜像文件的一致性,但是不会去改动它。
4、Backup Node方案Hadoop的Backup Node方案的最终目标是为了HDFS提供NameNode的热备节点,减少服务恢复时间。其主要的实现原理是,通过同步更新机制,在BackupNode节点中保存一份与NameNode完全一致的内存镜像,并且当NameNode无法提供服务时,能够自动接替,对外提供服务。
5、其他解决方案         除了上述的解决方案,还有AvatarNode解决方案以及最新的HA解决方案CloudreaHA Name Node等。这些解决方案读者在深入了解hadoop以后可以自行分析。大家也可以参考《高可用性的HDFS

总结
在实际应用中,往往采用两种以上方式的组合。例如如果NameNodeSecondaryNameNodeBackuoNodeCheckPointNode配合使用,那么,一定间隔内会进行Checkpoint操作,checkpoint操作会形成当前某一时刻的元数据镜像文件fsimage,以该文件替换NameNode上所有的fsimage,并以最新fsimage对应时刻之后的日志记录文件edits替换NameNode上所有的edits。该机制可以有限限制日志文件的大小,放在其无限制增长,同时也降低了HDFS合并时的合并时间。

关注我们——官方网站——
R语言中文网  www.r-china.net
——官方QQ群——
R语言中文论坛-2(1000人群):427060123
R语言中文论坛(2000人群,已满):74076289
Biostatistician(500):186701945
——官方微博——
新浪微博:@R语言中文网官网
——官方微信——
微信名:R语言中文网  微信号:rchinanet

微信扫一扫
获得更多内容

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 18:42 , Processed in 0.020982 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表