我读了很多参考资料,书中的章节和文章,但我仍在努力把所有的东西粘在一起:我非常了解mapreduce逻辑链,但我特别想知道随着时间的推移,在哪个物理节点上启动了哪些特定进程。我猜Map器是在datanode机器上“现场”执行的,但是其他进程呢,特别是需要通过多个datanode访问数据的reducer呢?另外,如果我做得好的话,map和reduce编写的程序会在执行命令的主节点上启动,结果会在集群中的新jvm上启动新线程,对吗?
bxfogqkk1#
我建议你去参观http://bytepadding.com/map-reduce/给你一个概述。mapreduce客户端可以在本地启动,也可以在datanode(oozie启动器)上启动。基于inputformat,mapreducedriver(应用程序主控程序)从namenode获取文件位置基于文件分割策略,将启动Map程序,该进程将尝试在尽可能靠近单个文件块的位置生成Map程序。Map器在数据节点上生成。Map程序完成后,将在数据节点上启动reducer,并将Map程序中的数据复制到这些特定的机器上。
1条答案
按热度按时间bxfogqkk1#
我建议你去参观http://bytepadding.com/map-reduce/
给你一个概述。
mapreduce客户端可以在本地启动,也可以在datanode(oozie启动器)上启动。
基于inputformat,mapreducedriver(应用程序主控程序)从namenode获取文件位置
基于文件分割策略,将启动Map程序,该进程将尝试在尽可能靠近单个文件块的位置生成Map程序。
Map器在数据节点上生成。
Map程序完成后,将在数据节点上启动reducer,并将Map程序中的数据复制到这些特定的机器上。