第三章 HADOOP分布式文件系统 第一节 HDFS设计

    当数据过大而不适用于单独一台机器的存储容量时,把它分到许多独立的机器上就很

必要了。管理网络计算机存储的文件系统叫分布式文件系统。由于它是基于网络的,所有

复杂的网络程序问题接踵而至,使分布式文件系统比普通的硬盘文件系统更复杂。例如,

最大的挑战是使文件系统可以处理节点失败而不至于数据丢失。

    HADOOP自带了一个分布式文件系统叫HDFS,即HADOOP Distributed Filesystem。

(你也许会看到“DFS"----在非正式的场合或老的文档或配置----与HDFS是同一个东西)。

HDFS是HADOOP的代表文件系统,是本章的重点,但是HADOOP有一个通用的文件系

统抽象,所以我们也会看到HADOOP如何与其它的存储系统集成(如本地文件系统和Amazon S3)。


HDFS设计

    HDFS是一个文件系统,设计用来存储大学大的文件,并使用流媒体数据访问模式,运行在标准

硬件组成的集群上。让我们看下这条语句的细节

    大文件

        “非常大”在这个语境里的意思是文件大小有几百M,或G,或T。有HADOOP集群存储了PB级

的数据。

    流式数据访问

        HDFS是基于这样的思想----数据访问最有效的模式是“写一次,读多次”模式----创建的。一个数据

集从源产生或拷贝,然后基于这个数据集开始各种分析。每一个分析会使用数据集的全部或大部分数据,

所以读取所有数据集合的时间远比读取一条记录的延时重要。

    标准硬件

        HADOOP不需要昂贵的、高可靠的硬件。它被设计运行在标准硬件组成的集群的(普通的硬件,可以

从各个供货商那买到),做为集群中的节点,出错的机会是很高的,尤其是大的集群。HDFS设计可以进行

工作而不需要用户面对这个失败导致明显的中断。

    也需要知道哪些项目不适用于HDFS。也许将来会改变,至少现在这些领域不适合HDFS:

    低延迟数据访问

        要求数据访问低延迟的项目,要在10几毫秒的范围内,不适合HDFS。记住,HDFS优化是针对大

吞吐量的数据,并以延迟的代价。HBase(见20章)是目前针对低延迟访问的较好选择。

    大量小文件

        因为namenode在内存中保存文件系统元数据,文件系统的文件数据限制是由namenode的内存总量

决定的。根据经验,每一个文件、目录以及块占用大约150字节。所以,如果你有100万文件,每个文件占

用一个块,你至少需要300M内存。尽管存储几百万文件是可以承受的,几十亿的会超过目前硬件的容量。

    多次写,任意位置修改文件

        HDFS的文件写许是由一个程序写的。写操作一般只在文件末尾,并且只能增加。它不支持多个程序

写或在文件任意位置修改(也许将来会支持,不会那样会相对低效)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值