为什么在Hadoop中读取操作比写入操作慢?

为什么在Hadoop中读取操作比写入操作慢?

在集群模式下。我们在 Hadoop 中运行不同的 I/O 测试。我们注意到写入数据的速度比读取数据的速度快。如何提高读取吞吐量,使其与写入吞吐量一样快。这是配置问题吗?

答案1

是不是配置的问题?

,实际上这甚至不是一个问题。读写操作的 I/O 速度可能因基准测试类型、文件系统设置、硬件设置和配置(如果您有 RAID,它是哪种 RAID 等)而异。这是完全正常且在意料之中的,尽管很难准确指出造成这种情况的原因。


I/O 是一个非常广泛的主题,包含大量细节。基准测试的结果可能因很多方面而不同,包括基准测试软件使用的 I/O 基准测试的实现,这也是为什么不同的基准测试软件可能会得到完全不同的结果的原因之一。

例如,不使用O_DIRECT 和 O_SYNC标记,写入速度会比读取速度快很多。如果将这些标记用于同步 I/O 操作,写入速度会比读取速度慢很多。

再举一个例子,如果您使用 RAID1 配置,则从两个磁盘异步读取将比写入速度大幅提升,因为您只能在其中一个磁盘上写入,而您可以同时从两个磁盘读取。

相关内容