到目前为止,我们谈到Hadoop是一个创建分布式集群的框架,能够处理大的、不同的数据集。然而,另一个说法是将Hadoop理解为一个存储设备或存储环境。确实,它是一个能够在其上创建应用的平台,有存储PB级数据的能力。此外,它能够处理并分析数据;提供越来越多的“大数据”应用结果。(不可否认,这正是一个以存储为中心的Hadoop架构观点。)
我们也可以说每个节点提供其本地计算并把资源存储到集群,这些节点基于常用的服务器硬件。有时候用“cheap and deep”这一术语来描述资源配置理念,意思是集群由常用服务器(廉价的)组成,能够扩展到数百个节点(深入)――都是以免费的Apache Hadoop(可以免费获得)为基础。
Hadoop:与RAID类似吗?
鉴于cheap and deep(廉价和深入)的倾向,随着时间的推移出现预期的一类或另一类组件失败。所以Hadoop的目的是检测并解决故障。这方面Hadoop有点类似于初期以廉价磁盘冗余阵列为代表的RAID。假设,由许多PC级磁盘构成存储阵列,驱动器将来很可能发生故障。诀窍是允许驱动器出现故障而不丢失数据。不同的RAID级别(0,1,3,5,6等等)提供多种阵列配置和驱动器故障恢复模式。
的确,Hadoop可以看作廉价服务器冗余阵列(RAIS). Hadoop也假设冗余服务器的硬件故障将是一个正常的操作事件,并因此内置恢复进程。大多数部署在Hadoop分布式文件系统(HDFS)中.例如,当提取数据时,它被分解成数据块(默认是64MB块)。块被多次拷贝然后分布――原始和副本――访问DataNodes。HDFS默认创建两份副本,并且通常写入到不同机架的服务器。这个拷贝和分布进程由NameNode管理。如果由于某种原因一个DataNode服务器出现故障,包括内部磁盘故障,这个NameNode将在集群中其它地方找到丢失的数据,当故障节点被重启或替换后进程能够继续执行。
区别于现代RAID阵列
尽管如此,还有一些明显的遗漏。从DataNode的故障中恢复比NameNode中断恢复相对容易。在当前的Apache Hadoop版本中,没有适用于无功能的NameNode的自动恢复规定。Hadoop NameNode是一个臭名昭著的单点故障点(SPOF)——和RAID阵列没有什么不同,单控制器的RAID阵列也是一个SPOF。NameNode损坏关闭集群可能导致数据丢失,如果故障发生,数据不能被恢复。此外,重启大集群(假设数据可恢复)中的NameNode可能花费数小时。
Apache Hadoop寻址问题
缺乏自动NameNode故障转移模式和其它Apache Hadoop的缺点(JobTracker是另一个SPOF)给商业供应商急于出售“企业就绪”方案提供了机会。这些供应商的普遍做法之一是从本质上支持Apache Hadoop,通过APIs访问核心Hadoop组件,像HDFS一样随同他们自身修改,一些开放的和其它的专利。供应商列表分成以下几类(但不限于此):
• EMC
• HortonWorks
• IBM
• MapR (也是由EMC Greenplum提供)
• Red Hat
这些供应商(其它供应商希望在解决问题的同时,保留Hadoop的MapReduce框架)的业务首先是为了解决NameNode和JobTracker SPOF问题。例如,MapR是Apache Hadoop工具的分布,实现集群中跨服务器分布式NameNode功能(分布式NameNode负载均衡)。Red Hat的GlusterFS使用它内置的元数据感知NameNode,完全消除了元数据服务器。
我们也提到,Hadoop创建多个跨集群分布的数据副本,适用于不同的恢复场景。然而,使用快照替代可能适用于回滚集群到一个已知的好的状态,同时降低全数据拷贝的开销。一些供应商在他们的Hadoop架构中支持快照拷贝。
回顾我们关于向外扩展的网络直连存储(NAS)作为Hadoop主存储的讨论, EMC Isilon也可以用来解决这些问题。Isilon的OneFS全局命名空间文件系统能够支持Greenplum Hadoop (HD)集群。Isilon把HDFS看作“过线”协议,因此是第一个集成到HDFS的SoNAS平台。它也解决了Hadoop NameNode 和 JobTracker功能的单点故障。
Apache Hadoop的回应
公平地说,我们不得不指出Apache社区清楚Hadoop当前NameNode和其它问题的缺陷。事实上,现在从Cloudera (CDH 4.0)可以得到一个重要的作为测试版的新版本,专门针对NameNode SPOF问题。它包括一个HDFS的高可用(HA)版本.在HA版本中是一个“热备”NameNode,在管理员控制下,当活动节点出现故障或因管理员在日常维护和升级将NameNode离线时接管——通常这种情况很有可能。总之,HDFS HA包括两个主/备配置的NameNodes。将来,支持自动NameNode故障切换。
结语
我们由关注大数据存储开始本系列,另一种说法是PB级存储,大数据分析是做商业智能(BI)的新途径。但是,我们已经看到大数据存储如何与Hadoop结合使用——集成大数据存储和分析——Hadoop可以被看作一个PB级存储设备。
然而,我们还没有真正探索一个最终的但重要的因素:成本。除了我们以前描述的给无共享集群增加网络存储的潜在问题,一个存储区域网络(SAN)和NAS也被“传统主义者”视为太昂贵的方法。记住这个准则:cheap and deep。与之相似,在集群结点级固态硬盘(SSD)作为直连存储(DAS)的替代方案。甚至能够用涡轮给集群增压的存储在规模和适用性上被视为太昂贵,只适用于那些愿意为性能付钱的用户。
真正的问题是廉价和深的思想将来是否会在企业级数据中心盛行。如果确实如此,节点级DAS作为Hadoop唯一的存储层将很可能盛行,直到有人意识到持续增加服务器到集群来适应数据增长,同时会有越来越多的增长维护问题和管理开销方面成本影响。如果不是这样,为了业务连续和数据存储目的SAN 和/或 NAS将作为一级或二级存储层,并且存储管理员的技能将被再次加分。