- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
从上述例子可以看出,reducer的数量并不是固定的。此外,在MapReduce的框架中还有其他一些灵活的配置选项。MapReduce的整个编配工作由主节点(master node)控制。这些主节点控制整个MapReduce作业编配,包括每份数据存放的节点位置,以及map、sort和reduce等阶段的时序控制等。此外,主节点还要包含容错机制。一般地,每份mapper的输人数据会同时分发到多个节点形成多份副本,用于事务的失效处理。一个MapReduce集群的示意图如图1所示。
图1 MapReduce框架的示意图。在该集群中有3台双核机器,如果机器0失效,作业仍可以正常继续
图1 的每台机器都有两个处理器,可以同时处理两个map或者reduce任务。如果机器0在map阶段宕机,主节点将会发现这一点。主节点在发现该问题之后,会将机器0移出集群,并在剩余的节点上继续执行作业。在一些MapReduce的实现中,在多个机器上都保存有数据的多个备份,
例如在机器0上存放的输人数据可能还存放在机器1上,以防机器0出现问题。同时,每个节点都必须与主节点通信,表明自己工作正常。如果某节点失效或者工作异常,主节点将重启该节点或者将该节点移出可用机器池。
总结一下上面几个例子中关于MapReduce的学习要点:
▷ 主节点控制MapReduce的作业流程;
▷ MapReduce的作业可以分成map任务和reduce任务;
▷ map任务之间不做数据交流,reduce任务也一样;
▷ 在map和reduce阶段中间,有一个sort或combine阶段;
▷ 数据被重复存放在不同的机器上,以防某个机器失效;
▷ mapper和reducer传输的数据形式为key/value对。
Apache的Hadoop项目是MapReduce框架的一个实现。
责任编辑:admin