好程序员大数据点睛:关于HDFS的二三事

时间:2022-04-09 00:19:34

 1.Hadoop自带的一个称为HDFS的分布式文件系统,即Hadoop Distributed Filesystem。它是以流式数据访问模式来存储超大文件,运行于商用硬件集群上;

2.超大文件,目前可以存储PB级别数据了;

3.流式数据访问;

4.商用硬件,廉价机器即可;

5.低时间延迟的数据访问,记住HDFS是为高数据吞吐量应用优化的,这可能会以提高时间延迟为代价,目前对于低延迟的访问需求,HBase是更好地选择;

6.大量的小文件,由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件目录和数据块的存储信息大约占150字节,所以这类文件不是用在HDFS中;

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

关于HDFS的三个节点:

1. Namenode:HDFS的守护进程,用来管理文件系统的命名空间,负责记录文件是如何分割成数据块以及这些数据块分别被存储到哪些数据节点上,它的主要功能是对内存及IO进行集中管理;

2.Datanode:文件系统的工作节点,根据需要存储和检索数据块,并且定期向namenode发送他们所存储的块的列表;

3.Secondary Namenode:辅助后台程序,与NameNode进行通信,以便定期保存HDFS元数据的快照;

4.HDFS Federation(联邦HDFS):通过添加namenode实现扩展,其中每个namenode管理文件系统命名空间中的一部分。每个namenode维护一个命名空间卷,包括命名空间的源数据和该命名空间下的文件的所有数据块的数据块池;

5.HDFS的高可用性(High-Availability):Hadoop的2.x发行版本在HDFS中添加了对高可用性(HA)的支持。在这一实现中,配置了一对活动-备用(active-standby)namenode。当活动namenode实效,备用namenode就会接管它的任务并开始服务于来自客户端的请求,不会有明显的中断。