现在的位置: 首页 > 综合 > 正文

Hadoop分布式文件系统(HDFS)学习笔记

2018年04月20日 ⁄ 综合 ⁄ 共 817字 ⁄ 字号 评论关闭

         今天在看《Hadoop权威指南》(第二版)这本书,就简略写一点读书笔记吧。

         HDFS的默认数据块大小为64M,一般的磁盘块大小为512 bytes。HDFS的数据块远远大于一般磁盘块,是为了最小化寻址开销。如果块设置的足够大,从磁盘传输数据的时间会远远大于定位这个块起始位置的时间,这样传输一个由多个块组成的文件的时间取决于磁盘的传输速率。

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

      (1)一个文件的大小可以大于网络中任何一个磁盘的容量

      (2)使用块抽象而非整个文件作为存储单元,大大简化了存储子系统的设计。

      (3)块适合数据备份,提高了容错能力和可用性

       HDFS有两类节点:一个namenode(管理者)和多个datanode(工作者)

      namenode:维护文件系统树及整棵树内所有的文件及目录

      datanode:根据需要存储并检索数据块,定期向namenode发送它们所存储的块的列表。

      如果运行namenode的服务器损坏,我们就不知道如何根据datanode的块来重建文件,文件系统上的所有文件将丢失。

      Hadoop提供了两种对namenode的容错机制。第一种机制是备份那些组成文件系统元数据持久状态的文件。Hadoop可以通过配置使namenode在多个文件系统上保存元数据的持久状态。一般把持久状态写入本地磁盘的同时,写入一个远程挂载的网络文件系统(NFS)。另一个方法是运行一个辅助namenode,但它不能被用作namenode。这个辅助namenode一般在另一台单独的物理计算机上运行,它定期通过编辑日志合并命名空间镜像,以防止编辑日志过大。但是,辅助namenode保存的状态总是滞后于主节点,所以在主节点失效时难免会丢失部分数据。在这种情况下,一般把存储在NFS上的namenode元数据复制到辅助namenode并作为新的主namenode运行。

抱歉!评论已关闭.