Hadoop学习笔记 1HDFS

1.1      HDFS

1HDFS 同样有block的概念,不过要大得多,默认64M。同样,HDFS上的文件也被划分为块大小的多个分块chunk,作为独立的存储单元。

2HDFS中小于一个块大小的文件不会占据一个块的存储空间。

 

那么为什么HDFS中的块定义那么大呢,主要是为了最小化寻址开销。如果块设置的足够大,定位这个块的时间就会明显小于磁盘文件传输的时间,有利于提高系统的工作效率。

但分块也不能太大,否则如果任务数比节点少的话,作业速度反而会降低。

对分布式文件系统中的块进行抽象有很多好处:

1)存储的文件大小不受限制,可以大于系统中单个磁盘的大小。

2)简化了存储子系统的设计,因为文件的元数据单独处理,和数据块分离,易于管理。

3)方便了数据备份。

1.2     Namenode datanode

Namenode管理文件系统的命名空间,它维护着整个文件系统树及其树内的所有文件和目录。这些信息都存储在制定的name目录下。

Datanode是文件系统的工作节点。它们负责存储和检索数据块,受到namenode调度,并定期向namenode发送所存储的数据块列表。

 

可以看到namenode是文件系统的核心,当namenode节点毁坏时,即使datanode都完好,也无法获得存储的数据,因为不知道怎么来组织那些存储块以构成一个完整的文件。所以namenode节点的容灾设计非常重要。

Hadoop提供两种机制来进行容灾设计。

1)备份元数据。即将namenode上存储的元数据在别的地方进行备份。

2)建立secondaryNamenode,但在平时它不具备namenode的功能,只是定期通过编辑日志合并命名空间和镜像。一是可以较少namenode启动时间,而是可以容灾。

posted on 2012-04-27 16:16  缠中说禅  阅读(234)  评论(0编辑  收藏  举报