2012-04-18 115 views

回答

1

地图任务的输出按分区号排序。每个分区号对应一个reducer。当减速器拉出输出时,文件指针将偏移到减速器的分区编号的起始位置并开始读取。当然,为了实现这一点,在映射器端维护一些分区号到文件偏移量表。

+0

从代码中,它看起来像合并所有溢出文件后地图任务完成。通过这种方式可以如何保持“某些分区号对文件偏移表”的作用?另外,我可以在ReduceTask中看到,它会打开一个http连接来获取中间数据,但我在地图任务一侧看不到任何http处理程序。 TaskTracker是否充当一个http服务器来处理reduce http请求?我对此表示怀疑。 – user1080611 2012-04-18 21:00:04

+0

在地图的末尾,输出(多次溢出或1次溢出)按分区号排序。分区编号到文件偏移量表也被写入。该表不保存在内存中。目前的Hadoop(1.0/0.20.xxx)使用jetty来切断HTTP请求。码头可以在一个线程中启动。你必须阅读代码才能获得更多细节。当前中继线使用netty而不是码头。 – root1982 2012-04-19 02:10:54

相关问题