Fighting bird分享 http://blog.sciencenet.cn/u/tonia

博文

Iterative MapReduce

已有 8683 次阅读 2011-12-28 13:56 |个人分类:未分类|系统分类:科研笔记| iterative, mapreduce


使用MapReduce模型实现迭代式算法,最straightforward也是最general的方法就是,将多个map/reduce任务链接起来,构成一个chain。这种manual的方法需要user driver做两件事情:
(1)termination终止条件判断:或者设定一个最大迭代次数,或者给定一个终止阈值,或者需要比较相邻两次迭代的结果的差异性(这种比较可能需要额外的map/reduce任务来完成);
(2)整个任务链map/reduce之间的input/output问题,即上一次迭代的reducer输出作为下一步迭代的mapper输入,考虑是否需要缓存中间结果集以实现数据重用等。

HaLoop是一种MapReduce的改进实现,支持迭代式数据分析,主要有以下改进:
(1)Loop-invariant cache:即将那些在循环迭代过程中不变的mapper输入和reducer输入缓存在本地节点上,以供后续迭代重用;
(2)Caching for fixpoint verification:即缓存reducer输出结果,便于比较两次迭代的结果,以判断是否达到终止条件,而不需要一个专门的MapReduce任务做检查;
(3)Loop-aware scheduling:即将处理相同数据分区的两次任务分配到一个物理节点,减少数据的重新加载和mapper/reducer之间的通信。


参考:


https://blog.sciencenet.cn/blog-425672-522934.html

上一篇:弹性分布式数据集:基于内存的集群计算的容错性抽象(3)
下一篇:Big Data: Principles and best practices of scalable realtime
收藏 IP: 75.180.53.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 11:18

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部