分享按钮
RSS订阅

清逸成风_hadoop的hdfs的设计

作者: 清逸成风 |来源:转载| 标签: 清逸成风   java编程   软件开发   开发文档  

一、hdfs的设计,hdfs以流式数据访问模式来存储超大文件

1:hdfs的构建思路,一次写入,多次读取

2:hdfs是为高数据吞吐量应用优化的,这可能会以提高时间延迟为代价

3:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。(大量的小文件)

4:hdfs中的文件可能只有一个writer,而且写操作总是将数据添加在文件的末尾,不支持具有多个写入者的操作,也不支持在文件的任意位置修改。

 

二、hdfs的概念

数据块:默认64MB,hdfs上的文件也被划分为块大小的多个分块,作为独立的存储单元,但hdfs中小与一个快大小的文件不会占据整个快的空间。

hdfs的块比磁盘的块大,目的最小化寻址的开销,但不会设置过大,mapReduce中的map任务通常一次只处理一个块中的数据,因此如果任务数太少,作业的运行速度就会比较慢。

 

分布式文件系统中的块带来的好处:

一个文件的大小可以大于网络中任意一个磁盘的容量。文件的所有块并不需要存储在同一个磁盘上。

使用抽象块而非整个文件作为存储单元

 

三、namenode和datanode

namenode:维护着文件系统树及整棵树内所有的文件和目录。也纪录每个文件中各个块所在数据节点的信息,但他并不永久保存块的位置信息,因为这些信息会在系统启动时由数据节点重建

 

datanode:是文件系统的工作节点,他们根据需要存储并检索数据块,并且向namenode发送他们所存储的块的列表

 

 

 

 

 

 

 

 

 

 

 

 


清逸成风:www.chenzongyong.cn
逸风美图:yfmt.sinaapp.com