HDFS块大小为64 MB。我看到它的原因是
更大的块大小意味着“名称”节点上的内存占用更少。因为如果块大小较小,则每个64 MB数据块只有一个条目,而对于相同数量的数据则有更多条目。
这是来自Hadoop权威指南。
HDFS块比磁盘块大,原因是 最小化搜寻成本。如果块足够大,那么时间 从磁盘传输数据所需的时间可能更长 比寻找区块开始的时间要多。因此,转移 由多个块组成的大文件以磁盘传输速率运行。
因此要实现这一点,不是从本质上意味着64MB块必须连续存储在磁盘上以减少查找时间吗?
如果要安排在HDFS中读取文件的高级步骤
客户端向“名称”节点发出请求。
名称节点找到具有拆分的数据节点。
数据节点(通过网络)将数据传输到客户端。
数据节点必须调用其计算机上的ext3文件系统才能读取文件。进而需要访问每个物理块。当ext3必须读取64MB文件时,它必须访问64MB / 4KB块。如果这些块不是顺序的,我们如何减少寻道时间。