Hadoop笔记(二) Hadoop 分布式文件系统

1、分布式管理系统(Distributed Filesystem):   

     当数据集超过了单一的物理计算机的可存储容量,这就需要存储在不同的计算机上。这种管理跨网络计算机存储的文件系统叫分布式文件系统。

 

2、HDFS(Hadoop Distributed Filesystem) :   

     Hadoop的分布式文件系统叫HDFS(Hadoop Distributed Filesystem). 这种文件系统用来存储数据流的超大文件,运行在计算机集群上。

 

3、HDFS 集群有用来控制主从模式的两种节点namenode(主)和datanode(从)。

     Namenode 管理文件系统的命名空间用来联系文件系统树(filesystem tree)和树的所有文件的元数据和目录。这些信息以namespace 和edit log两种形式存储在本地硬盘。

       Datanode用来存储和调取数据块(当客户端或者namenode需要时)以及将这些数据存储的数据块表单传回给namenode。 

       客户端通过namenode和datanote得到文件系统, 客户端推出类似POSIX的文件系统接口,这样用户就不必知道函数的namenode 和 datanode.

       Namenode很重要。没有Namenode, 文件系统上所有的文件会由于无法从数据块里面重构整个文件而丢失(这个和硬盘记录数据的方式挺像啊,硬盘记录数据也是一块一块的,并且这些一块一块数据是通过块之间的“指针”按顺序连接的,模糊记得好像是这样,迟点修改。)。因此Hadoop提供两种机制使得namenode恢复。第一种机制是通过备份文件系统的元数据的永久状态在文件上。第二个机制是使用第二个namenode。

 

4、快缓存(Block Caching)

   通常情况下,datanode从硬盘读取块,但是频繁的读取块就需要缓存在datanode的内存叫堆内外存块(off-heap)块缓存(block cache)。

 

5、HDFS Federation

  Namespace保存了内存的文件系统中所有文件和块的引用。这意味对于文件大规模集群,规模化的限制条件是内存空间。而HDFS Federation允许集群规模化增加namenode(这里的namenode用来管理部分文件系统命名空间)。在federation下,每个namenode管理一个命名空间容量(由命名空间的元数据组成)。命名空间容量是相互独立的,因此单个命名的失败并不影响其他namenode下的命名空间。

 

6、HDFS 高可靠性

    

 

posted @ 2017-12-01 09:12  抽象Java  阅读(898)  评论(0)    收藏  举报