本篇的数据和代码参见:https://github.com/stonycat/ML-in-Action
一、MapReduce:分布式计算的框架
MapReduce
优点:可在短时间内完成大量工作。
缺点:算法必须经过重写,需要对系统工程有一定的理解。
适用数据类型:数值型和标称型数据。
Google公司的Jeffrey Dean和Sanjay Ghemawat在2004年的一篇论文中第一次提出了这个思想,该论文的题目是“MapReduce:Simplified Data Processing on Large Clusters” 1 MapReduce的名字由函数式编程中常用的map和reduce两个单词组成。
MapReduce的优势在于,它使得程序以并行方式执行。
在一些MapReduce的实现中,在多个机器上都保存有数据的多个备份,
例如在机器0上存放的输入数据可能还存放在机器1上,以防机器0出现问题。同时,每个节点都必须与主节点通信,表明自己工作正常。如果某节点失效或者工作异常,主节点将重启该节点或者将该节点移出可用机器池。
总结一下上面几个例子中关于MapReduce的学习要点:
主节点控制MapReduce的作业流程;
MapRedu