HDFS 是一个 Apache Software Foundation 项目,是 Apache Hadoop 项目的一个子项目。Hadoop 非常适于存储大型数据(比如 terabytes 和 petabytes),并使用 HDFS 作为其存储系统。HDFS 允许用户连接多个集群中包含的节点 (普通个人计算机),那些集群上分布着一些数据文件。然后用户可以将那些数据文件作为一个无缝文件系统来进行访问和存储。对数据文件的访问通过一种流线型(streaming) 方式进行处理,这意味着应用程序或命令通过 MapReduce 处理模型直接执行。
HDFS 是容错的,且提供对大数据集的高吞吐量访问。这里探索 HDFS 的主要特性。
image高级 HDFS 架构视图
HDFS 与其他分布式文件系统有许多相似点,但也有几个不同点。一个明显的区别是 HDFS 的 “一次写入、多次读取(write-once-read-many)” 模型,该模型降低了并发性控制要求,简化了数据聚合性,支持高吞吐量访问。
HDFS 的另一个独特的特性是下面这个观点:
将处理逻辑放置到数据附近通常比将数据移向应用程序空间更好。
HDFS 将数据写入严格限制为一次一个写入程序。字节总是被附加到一个流的末尾,字节流总是以写入顺序存储。
HDFS 有许多目标,下面是一些最明显的目标:
-
通过检测故障和应用快速、自动的恢复实现容错性
-
通过 MapReduce 流进行数据访问
-
简单可靠的聚合模型
-
处理逻辑接近数据,而不是数据接近处理逻辑
-
跨异构普通硬件和操作系统的可移植性
-
可靠存储和处理大量数据的可伸缩性
-
通过跨多个普通个人计算机集群分布数据和处理来节约成本
-
通过分布数据和逻辑到数据所在的多个节点上进行平行处理来提高效率
通过自动维护多个数据副本和在故障发生时自动重新部署处理逻辑来实现可靠性
网友评论