这篇文章是在老师的强迫之下 我志愿写的,用于应付作业。
以下是我个人一些粗浅的观点,不喜勿喷,欢迎指正。
MapReduce是一个编程模型,可以让程序员有效利用分布式系统的丰富资源,这在《Google MapReduce》这篇文章中已经写得很清楚了。这个模型用于处理纷繁复杂的数据,master是连接Map和Reduce的通道,它是让master将一个复杂的任务化为相当多的小任务,将其分配给worker进行处理,再将处理后的数据汇总到master上再交给Reduce。这说明了运用这个编程模型可以将原来很难处理甚至根本无法处理的数据通过“众人拾柴火焰高”的方法将数据高效地处理,在当今现在这个大数据时代具有非凡的意义。按照这个方法,哪怕你的worker是一堆杂鱼,也可以组合成一个牛逼哄哄的数据处理机器。
结构图
通过这种方法除了加快数据处理的速度还可以增加容错率,由于工作是由master下发给许多worker的,所以当一个worker出故障时几乎不影响工作,当master出故障时,他们会重新选举一个master,而 master的选举也是经过多方面的考虑的,会选择状况性能最好的机器来充当master。
(其他的我就看不懂了)
MapReduce通过机器并行处理数据提高了数据处理效率,缔造者还对其进行了容错处理,机器失效不再是毁灭性的,使得它的可行性大大提高。
以上就是我对MapReduce这篇论文学习粗浅的理解。