在map / reduce之间共享资源

时间:2012-03-26 18:35:00

标签: hadoop hbase

运行map任务会减慢reduce任务吗?通过放慢速度我的意思是他们共享一个共同的资源吗?

1 个答案:

答案 0 :(得分:0)

当然,它们会以某种方式影响系统。它们都是在同一台机器上运行的java进程。但是,现在在系统配置中,只要你不对插槽的数量做一些愚蠢的事情就不是那么大。

每个map任务或reduce任务本身不是多线程或多进程,因此它通常只使用一个CPU核心。这就是为什么一般的经验法则是1个映射或每个核心减少插槽有点意义。所以,如果你有12个内核,你可以做8个地图插槽和4个减少插槽。

此外,这些任务将共享同一个磁盘,但这通常不是一件大事,因为系统有多个磁盘并且磁盘访问是突发的。

找出最佳配置的最佳方法是尝试尝试不同的配置。设置插槽的数量并不难,所以只需调整一下,然后重新运行一些以生产为代表的工作。

请注意,如果您一次只运行一个作业,则在映射器运行时,reducers将不会执行太多操作。在这种情况下,他们不会真正相互影响。更现实地说,你将有几个工作正在运行,一个工作的地图任务将与另一个工作的减速器同时运行。