HDFS-HDFS的设计理念

HDFS简介

首先,什么是HDFS呢?
HDFS,即hadoop distributed file system(hadoop分布式文件系统),在非正式文档或旧文档及配置文件中,有时也简称DFS,这都是一样的。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX(Portable Operating System Interface of UNIX,可移植操作接口)约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了POSIX的要求,这样可以实现流式访问(streaming access)文件系统中的数据。除此之外,HDFS还是易于扩展的分布式文件系统。

HDFS的设计

HDFS以流失数据访问来存储超大文件,运行与商用硬件集群上。

  1. 超大文件
    HDFS 不适合用于存储大量小文件,这会产生大量的块,受限于namenode的内存容量。这里的超大文件指的是GB,甚至TB级别的文件。目前,已有存储PB级数据的Hadoop集群了。
  2. 流式数据访问
    一次写入,多次读取是最高效的数据访问模式,能够高速率,大批量处理数据。数据集通常由数据源生成或从数据源复制而来,长时间在数据集上进行各种分析。所以提高吞吐量至关重要,因此 读取整个数据集的时间延迟比读取第一条数据的时间延迟更加重要
  3. 商用集群
    Hadoop不需要昂贵、高可靠的硬件,那会产生大量成本。HDFS可能由成百上千的服务器组成,每一个服务器都是廉价通用的普通硬件,任何一个组件都有可能一直失效,所以硬件组件发生故障是常态。每一个组成部分都很可能出现故障,这就意味着HDFS里的总是有一些部件是失效的,因此,故障的检测和自动快速恢复是HDFS一个很核心的设计目标。
  4. 移动计算比移动数据更经济
    在靠近计算数据所存储的位置来进行计算是最理想的状态,尤其是在数据集特别巨大的时候。这样消除了网络的拥堵,提高了系统的整体吞吐量。就是迁移计算到离数据更近的位置比将数据移动到程序运行更近的位置要更好。HDFS提供了接口,来让程序将自己移动到离数据存储更近的位置。
  5. 异构软硬件平台间的可移植性
    HDFS被设计成可以简便地实现 平台间的迁移,这将推动需要大数据集的应用更广泛地采用HDFS作为平台。

从上述特点中,我们不难看出其优缺点

优点:
1)高容错性
2)适合批处理
3)适合大数据处理
4)流式文件访问
5)可构建在廉价机器上
缺点:
1)不适合低延迟数据访问
2)不适合小文件存取

猜你喜欢

转载自blog.csdn.net/yc_hen/article/details/86544034