HDFS基本介绍
初次接触HADOOP HDFS,从它得定位与优缺点角度开始,是一个好方法。本文为个人翻译的官方文档,水平极其有限。
总体介绍
HDFS是Hadoop的分布式文件系统,该组件被设计为高度容错且部署在低成本硬件上,提供给了应用程序数据一个高吞吐量的连接。HDFS放宽一些POSIX的要求,以使流访问到文件系统的数据。HDFS最初建基础设施的阿帕奇Nutch的网络搜索引擎项目。
目标与期望
1.硬件故障
HDFS认为硬件故障属于正常的情况。一个HDFS实例会包括数百上千的服务机器,且每一个都存储一部分文件系统中的数据。事实是组件的数量十分庞大并且每个组件都有极大的可能失效,这意味着HDFS中的一些组件总是不提供服务的。因此,快速的定位问题,自动化的修复是HDFS中的核心架构目标。
2.流数据访问
有一些应用程序总是需要流式的访问他们的数据集合。他们通常不是运行在通用文件系统上的一般性应用。HDFS被用户设计为用于批处理而非交互式处理。它的重心在于高吞吐量而不是低延迟的数据访问。POSIX使得对那些针对HDFS的应用不受一些硬性的要求。POSIX已经提高了一些关键领域的数据数据吞吐效率。
3.大型数据集
运行在HDFS上的程序通常有着大量的数据集。HDFS中常见的文件大小是GB到TB级的。因此,HDFS对支持大文件进行了优化。对于一个单个的集群需要可以容纳大量聚合数据的带宽,并且规模在数百个节点。一个单实例就应该能支持数千万个文件。
4.简单的一致性模型
HDFS应用需要一次写入多次读出的文件访问模式。一个文件的创建写入和关闭不需要被修改。这个设计简化了一致性问题并使得高吞吐量数据存取成功实现。不论MR的应用还是网络爬虫的程序都能很完美的兼容这个模式。这是未来能够支持追加写的重要计划。
5.“移动计算比移动数据更廉价”
应用要求一个计算在计算时使用附近的数据,这会使得计算更为高效。在大数据量的形况下这种优势尤为明显。这样可以减小网络的阻塞并且提高系统的整体吞吐量。该设计认为计算迁移到数据的位置优于将数据迁移到正在运行的应用程序上。HDFS为应用程序提供了一些接口使得他们可以移动到离数据存储更近的地方
。
6.可移植性跨异构硬件和软件平台
HDFS被设计为易于从一个平台移植到另一个平台上。这使得HDFS作为一个大数据应用的平台选择而被广泛推广。