《Hadoop权威指南:大数据的存储与分析》—3 Hadoop分布式文件系统

举报
清华大学出版社 发表于 2019/10/12 12:37:23 2019/10/12
【摘要】 本节书摘来自清华大学出版社《Hadoop权威指南:大数据的存储与分析》一书中第三章,第3.1节,作者是Tom White , 王 海 华 东 刘 喻 吕粤海 译。

第Ⅰ部分


Hadoop基础知识

 



1  初识Hadoop

2  关于MapReduce

3  Hadoop分布式文件系统

4  关于YARN

5  HadoopI/O操作

 

 


 

3

Hadoop分布式文件系统

 

 

 

当数据集的大小超过一***立的物理计算机的存储能力时,就有必要对它进行分区(partition)并存储到若干台单独的计算机上。管理网络中跨多台计算机存储的文件系统称为分布式文件系统(distributed filesystem)。该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通磁盘文件系统更为复杂。例如,使文件系统能够容忍节点故障且不丢失任何数据,就是一个极大的挑战。

Hadoop自带一个称为HDFS的分布式文件系统,即Hadoop Distributed Filesystem。在非正式文档或旧文档以及配置文件中,有时也简称为DFS,它们是一回事儿。HDFSHadoop的旗舰级文件系统,也是本章的重点,但实际上Hadoop是一个综合性的文件系统抽象,因此接下来我们将了解将Hadoop与其他存储系统集成的途径,例如本地文件系统和Amazon S3系统。

3.1  HDFS的设计

HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。让我们仔细看看下面的描述。

  •    超大文件  超大文件”在这里指具有几百MB、几百GB甚至几TB大小的文件。目前已经有存储PB级数据的Hadoop 集群了。

  •    流式数据访问  HDFS的构建思路是这样的:一次写入、多次读取是最高效的访问模式。数据集通常由数据源生成或从数据源复制而来,接着长时间在此数据集上进行各种分析。每次分析都将涉及该数据集的大部分数据甚至全部,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。

 

  •    商用硬件  Hadoop并不需要运行在昂贵且高可靠的硬件上。它是设计运行在商用硬件(在各种零售店都能买到的普通硬件)的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显的中断。

 

同样,那些不适合在HDFS上运行的应用也值得研究。目前HDFS对某些应用领域并不适合,不过以后可能会有所改进。

  •    低时间延迟的数据访问  要求低时间延迟数据访问的应用,例如几十毫秒范围,不适合在HDFS上运行。记住,HDFS是为高数据吞吐量应用优化的,这可能会以提高时间延迟为代价。目前,对于低延迟的访问需求,HBase(参见第20 )是更好的选择。

 

  •    大量的小文件  由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录和数据块的存储信息大约占150字节。因此,举例来说,如果有一百万个文件,且每个文件占一个数据块,那至少需要300 MB 的内存。尽管存储上百万个文件是可行的,但是存储数十亿个文件就超出了当前硬件的能力。

 

  •    多用户写入,任意修改文件  HDFS中的文件写入只支持单个写入者,而且写操作总是以“只添加”方式在文件末尾写数据。它不支持多个写入者的操作,也不支持在文件的任意位置进行修改。可能以后会支持这些操作,但它们相对比较低效。



【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。