user9332151 Asked: 2019-06-06 03:08:09 +0800 CST2019-06-06 03:08:09 +0800 CST 2019-06-06 03:08:09 +0800 CST 为什么读取操作比 hadoop 中的写入操作慢? 772 在集群模式下。我们在 Hadoop 中运行不同的 I/O 测试。我们注意到写入数据比读取数据更快。如何将读取吞吐量提高到与写入吞吐量一样快。是配置问题吗? hadoop 1 个回答 Voted Best Answer Fanatique 2019-06-06T04:09:46+08:002019-06-06T04:09:46+08:00 是配置问题吗? 不,实际上这甚至不是问题。读写操作的 I/O 速度可能因基准测试的类型、文件系统设置、硬件设置和配置(如果有 RAID,它是什么类型的 RAID 等)而异。这是完全正常和意料之中的,尽管很难准确查明造成这种情况的原因。 I/O 是一个非常广泛的主题,包含大量的细节。您从基准测试中获得的结果可能因太多方面而异,包括基准测试软件正在使用的 I/O 基准测试的实现,这是您可能从不同的基准测试软件中获得完全不同结果的原因之一。 例如,如果不使用O_DIRECT 和 O_SYNC标志,您的写入速度将比读取速度高很多。如果你使用这些标志进行同步 I/O 操作,你的写入速度将比你的写入速度慢很多。 再举一个例子,如果您使用的是 RAID1 配置,则与写入磁盘相比,从两个磁盘异步读取将大大提高读取速度,因为您只能在其中一个磁盘上写入,而您可以从两者同时。
不,实际上这甚至不是问题。读写操作的 I/O 速度可能因基准测试的类型、文件系统设置、硬件设置和配置(如果有 RAID,它是什么类型的 RAID 等)而异。这是完全正常和意料之中的,尽管很难准确查明造成这种情况的原因。
I/O 是一个非常广泛的主题,包含大量的细节。您从基准测试中获得的结果可能因太多方面而异,包括基准测试软件正在使用的 I/O 基准测试的实现,这是您可能从不同的基准测试软件中获得完全不同结果的原因之一。
例如,如果不使用O_DIRECT 和 O_SYNC标志,您的写入速度将比读取速度高很多。如果你使用这些标志进行同步 I/O 操作,你的写入速度将比你的写入速度慢很多。
再举一个例子,如果您使用的是 RAID1 配置,则与写入磁盘相比,从两个磁盘异步读取将大大提高读取速度,因为您只能在其中一个磁盘上写入,而您可以从两者同时。