对于托管在 SSD 上的 HDFS,寻道时间是否重要?

Does Seek time matter for HDFS hosted on SSDs?

HDFS 的块大小很大 (64 MB),其中一个原因是块大小较小的 HDD 的寻道时间变长,这就是块大小较大的原因(另一个原因是索引的大小名称节点增加,但不要在答案中讨论)

现在当我们使用 SSD 时,寻道时间与 HDD 相比真的很重要吗?

您说得对,寻道时间对于 SSD 来说不是一个大问题。

在 HDD 中,寻道时间通常在 0.2 和 0.8 毫秒之间。 SSD 没有移动部件,因此寻道时间的测量只是测试准备存储设备内存上特定位置的电子电路。典型的 SSD 的寻道时间在 0.08 和 0.16 毫秒之间

但是寻道时间并不是决定块大小计算的唯一标准。 HDFS一般用作Hadoop等分布式系统的存储FS。 Hadoop 和其他分布式处理生态系统遵循 分而治之 的概念。那就是将任务分成更小的片段,并在具有商品硬件的多台机器上处理它们。

考虑到 SSD 的寻道时间比 HDD 少一个数量级,如果块大小设置太大会发生什么情况?

这本质上意味着较低的并行度。对于 640 MB 的文件和 64 MB 的块大小,可以在 10 台机器之间分配的处理任务可能限制为 3 个并行 mappers,块大小为 256 MB。这实质上将转化为更长的 运行 任务,最终将导致作业速度变慢。当手头的任务是计算密集型过程时,情况会变得更糟。

考虑到 SSD 的寻道时间比 HDD 少一个数量级,如果块大小设置得太小会发生什么情况?

  1. 现在在这种情况下,您将有很多任务,因为块大小很低,并且会在您的集群上生成大量 JVM,导致集群利用率低下。
  2. 您的 NameNode 将被大量信息淹没,甚至可能为一个小文件创建大量块。现在可以转化为拥有更强大的 NameNode 或其他一些解决方案,如 NameNode federarion。

所以关键是我有 SSD。但是要适当地选择你的块大小!否则你最终可能会得到一个 较慢 集群与 SSD 和大块大小,而不是你现有的 HDD 实现和 适当区块大小

希望对您有所帮助!