我使用Hadoop HDFS已经有相当一段时间了,我知道HDFS块(64Mb,128Mb)的工作原理,我仍然不清楚其他文件系统中的块,例如硬盘驱动器有4kb的存储块容量。
所以我的理解是,所有的存储系统都使用块来存储数据,即使我们的移动SD卡也是如此,但是Hadoop为了处理海量数据有更大的块大小,对吗?
如果有比较不同数据块存储系统的文档,请告诉我。
发布于 2018-07-19 22:53:28
HDFS基本上是对现有文件系统的抽象(这意味着64MB/128MB块在LFS中存储为4k块)。hdfs块大的原因是为了最小化寻道。HDFS块存储在正常文件系统中的连续内存位置(彼此相邻),这意味着读取它的总时间是在LFS上查找第一个块的头部,然后读取块的内容,而不再进行任何查找,因为它们是连续的。
这意味着我们读取的数据与磁盘传输速率相当,查找时间最少。
这在MR作业中非常有用,因为我们必须读取大量数据并对这些数据执行操作,因此最大限度地减少查找时间会带来良好的性能提升。
此外,HDFS还意味着要处理大文件。假设你有一个1 1GB的文件。对于4k的块大小,您必须发出256,000个请求才能获取该文件。在HDFS中,这些请求通过网络到达Name,以确定可以找到该块的位置。如果使用64Mb的块,请求数将减少到16。使用大块的原因是为了减轻namenode的压力。由于namenode存储文件块的元数据,如果块大小很小,那么namenode将很容易被块数据淹没。
这些链接还将帮助您更好地了解HDFS vs LFS
https://stackoverflow.com/questions/51423557
复制相似问题