Hadoop分布式文件系统(HDFS)是一种旨在在商品硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的区别很明显。HDFS具有高度的容错能力,旨在部署在低成本硬件上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。
架构
这是HDFS的一个简单架构图。
Rack1和Rack2是两台DataNode,也就是两台从节点。
NameNode是主节点。
其中Datanode是运行在从节点的一个进程,而Namenode是运行在主节点的一个进程。
DataNode负责数据的存储,而NameNode负责元数据的管理。
在HDFS中,我们存储数据可以看成一个数据块一个数据块的存储,每个文件都会分割成很多数据块,现在版本应该默认时128M了吧,毕竟计算机性能比以前好了,而且数据量也越来越大了。
而且对于一个文件,它的多个数据块大小都一样,都是设置的数据块大小,除了最后一块。也就是说,数据是一条条往数据块里面写,然后每写满一个数据块大小就分出一个数据块,这样就可以将前面的数据块都给填满,除了最后一块可能填不满之外。这样做的道理就是为了能够将数据尽可能和计算机性能匹配,你如果到处都是几kB或者几MB的文件,大量的这些杂碎文件就变成了很多任务,交给了很多线程去处理,无疑会