三个理由告诉你对象存储替换HDFS还不错
2015-04-07 TechTarget中国 编辑:Julian
Hadoop使企业能够对庞大的非结构化数据集进行大规模分析处理。这个数据集可以包含数以百万计,甚至数十亿个需要读取的文件。为了降低成本并提高数据处理性能,数据和应用程序应该存在于相同的物理硬件上。这样做使数据无需移动,就地处理,并允许使用不算昂贵的服务器级存储。 Hadoop分布式文件系统(HDFS)是为了管理这些分散在各个节点上的数据而应运而生的。然而现代存储架构提供了一个可以替代HDFS的引人注目的新方案:对象存储。为什么对象存储是您的组织进行Hadoop分析的一个可选项呢,下面将谈到三方面的原因。
原因一:对象存储可提供更好的数据保护
虽然HDFS能够利用内部的服务器级存储,它实际上是按照其标准的数据保护策略将所有数据做了三个副本。因此,尽管可以使用较便宜的服务器内部的硬盘驱动器,它可能并不像最初希望的那样经济,因为容量需求要乘以3。
一种替代方案是使用基于对象的存储系统,提供亚马逊简单存储服务(S3)协议访问,这是Hadoop除了HDFS也同样支持的。这些系统可以是纯软件,因此可以使用商用服务器和服务器级存储。但不同于默认的HDFS,许多对象存储系统都提供纠删编码。这种数据保护机制类似于RAID但粒度更细,可以在对象或子对象的层面操作,把数据和奇偶校验位分布到存储集群的各个节点上。其结果是,可以达到相似或更高水平的数据冗余性,而只需大约25%至30%的额外开销。相比之下, HDFS的标准三副本配置下的额外容量开销为200%。
原因二:HDFS会暴露主节点
HDFS具有一个主节点和一系列从节点。从节点处理数据并将结果发送给主节点。主节点还需要维护数据复制策略以及基本的集群管理。如果主节点发生故障,集群的其余节点将不能被访问。 HDFS对主节点只提供了有限的保护,所以企业需要采取特殊措施来实现主节点的高可用性。
如上所述,在对象存储系统中,主节点与从节点都能受到相同的纠删编码的数据保护。此外,由主节点维护的管理Hadoop集群所需的所有元数据(metadata)都可以存储在集中化的对象存储系统中。这样当主节点发生故障时,从节点或备用节点可以迅速变成为主节点。
原因三:HDFS不能进行单独扩展
像任何其他架构一样,Hadoop对计算和存储容量也会有不同程度的需求。问题是,HDFS要求计算能力和存储容量需要按比例进行扩展,这意味着你不能单独对某一种资源进行扩充。
要说明这一点最常见的方式是当一个Hadoop架构的存储容量用尽时,因为增加更多容量就意味着加入另一个装满硬盘的节点,这也增加了更多的计算能力。反之亦如此,作为Hadoop基础设施,往往需要更多的处理能力,但存储空间却很充裕。大多数时候,当购置了一个新的服务器以增加计算能力时,它也带来了新的存储空间。其结果是,Hadoop架构总是在某种资源上浪费金钱,而对另一种资源却总是缺乏。
对象存储允许容量和计算能力各自独立地进行扩展。计算节点可以是1U或2U的机箱,通过固态存储引导。对象存储系统可以装满高容量驱动器,从而保持每GB成本最低。更重要的是,随着应用环境的变化,每一层都可以独立扩展。
HDFS之于Hadoop的主要优点是低成本和高性能,这得益于数据存放于本地。而利用商业存储硬件的对象存储系统同样可以提供类似的低成本,尤其是当采用纠删编码来提高数据保护效率时更是如此。10 GbE的高速网络现在已经很实惠,这些都使HDFS将数据和计算放在一起所带来的性能优势不复存在。对象存储提供了一种更具成本效益,更可靠,而且性能至少跟HDFS相当的基础架构,它理所当然应该成为一种可行的HDFS替代解决方案。