我正在进行hadoop性能分析,并在hadoop上运行一些基准测试。令人惊讶的是,grep的运行时间几乎是wordcount的1/10,这是非常不直观的。有人能解释为什么这是真的吗?
suzh9iv81#
map-reduce习语中的很多工作是Map器和还原器之间的通信。在wordcount示例中,每个单词都会产生一个输出记录(和一个reducer输入)。在grep示例中,每个匹配的模式都会产生一个输出记录。如果模式不经常匹配,记录就不多了。我希望Map程序运行的时间大致相同,因为两者都是i/o绑定的,直到生成输出为止。两个任务之间的cpu差异可以忽略不计。然而,产量之间的巨大差异将非常明显。
1条答案
按热度按时间suzh9iv81#
map-reduce习语中的很多工作是Map器和还原器之间的通信。
在wordcount示例中,每个单词都会产生一个输出记录(和一个reducer输入)。在grep示例中,每个匹配的模式都会产生一个输出记录。如果模式不经常匹配,记录就不多了。
我希望Map程序运行的时间大致相同,因为两者都是i/o绑定的,直到生成输出为止。两个任务之间的cpu差异可以忽略不计。然而,产量之间的巨大差异将非常明显。