最近美国东海岸飓风灾难,引发了关于灾难恢复的讨论。让我们看看Hadoop所提供的各种高可靠性选项。
为了理解HA的存在的问题,首先让我们看看Cloudera关于Apache Hadoop 高可靠性的话,这样对于
“以前在HDFS集群里,NameNode是一个单点故障(SPOF)。每一个集群都有一个NameNode,如果这台机器或者进程不可用的话,整个集群系统都不可用。故障的恢复仰仗于NameNode的重启或者另外启动一台机器。
很明显,这将降低HDFS集群的整体可用性。
1.计划之外的事件发生,例如宕机,整个集群系统不可用,直到NameNode被人为地重启。
2. 计划之内的维护事件发生,例如NameNode的软硬件升级,将导致集群系统的DownTime。
现在让我们看看可选的高可靠性配置
(1) Cloudera的Hadoop高可靠性配置:
1. 1 Quorum-based Storage 基于Quorum的存储
“基于Quorum的存贮系统指的是利用 Quorum日志管理器 (QJM)的HA高可靠性实现。
为了让Standby节点和Active节点保持同步,二者都以称为日志节点的守护程序daemons进行通讯。在出现故障转换的时候,Standby节点将在变为Active状态之前,确保它所取得所有的变化数据。这就确保了整个集群名空间在故障转换之前保持同步。
1. 2 Shared Storage Using NFS 基于NFS的共享存储
为了让Standby节点和Active节点保持同步,二者都可以存取一个共享的存储设备(例如NAS安装为NFS)。
以称为日志节点的守护程序daemons进行通讯。
当名空间被Acitve节点修改的时候,它同时在共享存储设备上保持了一个变化记录。Standby节点则实时守护,一旦有变化,则更新它自己的名空间。
出现故障转换的时,Standby节点将在变为Active状态之前,确保它从共享存储器获得所有的变化数据。这就确保了整个集群名空间在故障转换之前保持同步。
详细信息可参考 Cloudera High Availability Guide
其他方法可参考原文