HadoopNotes

HDFS(2)- 概念

2017-09-04  本文已影响0人  精神使者

1、数据块(block)

数据块是磁盘读/写的最小单位,每个磁盘都有默认的数据块大小。HDFS作为分布式文件系统也有块的概念,但是数据块比较大,默认128MB。与磁盘上的文件系统相似,HDFS上的文件也被划分为块大小的多个分块(chunk),作为存储单元。但HDFS中小于128MB的文件不会占用整个块的空间。(如1MB的文件存在一个128MB的块中,文件只占用1MB,而不是128MB)

为什么HDFS中的块是128MB,这么大?

对分布式文件系统中的“块”进行抽象带来的好处

2、namenode 和 datanode

HDFS集群运行的节点有两类:管理节点(namenode)和工作节点(datanode)。

namenode

datanode

3、块缓存

通常datanode都是从磁盘中读取块。对于访问很频繁的文件,其对应的块可以被显示的缓存在datanode的内存中,以堆外缓存(off-heap block cache)的形式存在。默认是一个块仅缓存在一个datanode的内存中,也可以根据每个文件配置datanode的数量,来提高读操作性能。

4、联邦HDFS(federation)

namenode在内存中保存文件系统中每个文件和每个数据块的引用关系,对于一个拥有大量文件的超大集群来说,内存将成为限制系统横向扩展的瓶颈。

在Hadoop2.x发行版中引入了联邦HDFS,允许系统通过添加namenode实现扩展,每个namenode管理文件系统命名空间中的一部分。如一个namenode管理/user目录下文件,另一个namenode管理/share目录下的文件。

namespace volume

在联邦环境下,每个namenode维护一个命名空间卷(namespace volume),由命名空间的元数据和一个数据块池(block pool)组成,数据块池包含该命名空间下文件的所有数据块。

命名空间卷之间相互独立,两两互补通信。一个失效也不影响其他。因此集群中的datanode要注册到每个namenode,并且存储来自多个数据块池中的数据块。

5 、HDFS的高可用

Hadoop2 增加了对HDFS高可用性的支持。
第一种配置了一对 活动-备用(active-standby)namenode。当active namenode失效后,standby namenode就会接管它的任务并开始服务来自客户端的请求,对客户端来说不会有明显的中断。
第二种通过federation机制也就是联邦HDFS可以将多个namenode组成一个集群,外部可通过viewfs://URI来访问。Hadoop会通过你访问的路径来自动选择集群。

上一篇 下一篇

猜你喜欢

热点阅读