虽然我是一名计算机专业的学生,但在选修大数据这门公选课之前,我是对谷歌的mapreduce一无所知的。在老师的要求下,我对 Google MapReduce有了比较深刻的认识。
MapReduce 是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。它有一个很大的优势就是大量的减少了时间,使用MapReduce模型,再结合用户实现的Map函数和Reduce函数,我们就可以非常容易的实现大规模并行化计算。
MapReduce提供了以下的主要功能: 1)数据划分和计算任务调度: 系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并负责Map节点执行的同步控制。 2)数据/代码互定位: 为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻找可用节点以减少通信延迟。 3)系统优化: 为了减少数据通信开销,中间结果数据进入Reduce节点前会进行一定的合并处理;一个Reduce节点所处理的数据可能会来自多个Map节点,为了避免Reduce计算阶段发生数据相关性,Map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个Reduce节点;此外,系统还进行一些计算性能优化
MapReduce读后感
最新推荐文章于 2022-03-22 16:03:45 发布