分享

本人对MapReduce Online的心得与总结

Alkaloid0515 发表于 2013-10-26 15:11:46 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 7620

HOP
一些潜在的优点:
1)online aggregation可以加速
2)扩展了编程模型的运用范围
3)传递给下游数据快,提高并行性
一些设计挑战
1)与错误容忍机制共存
3) 需要生产者额和消费者共同调度




Pipelined MapReduce

1) 任务间
2)工作间
3)支持错误容忍
4)管道与调度
Pipelining Between Jobs

原因:
作业之间有不必要的读写,;
一个作业运行完之前,接下来的作业不能运行.

we describe how online aggregation and continuous query pipelines can publish
“snapshot” outputs that can indeed pipeline between jobs

Fault Tolerance
Map失败:Reduce把每个tcp连接发出的数据看成是一个尝试性的,也就是说直到map运行完,reduce才真正的接受数据,如果中途map失败,则忽略数据
Reduce失败:map端要把output的数据写到disk,以保证万一reduce失败,可以重新生成任务,并采用检查点的思想,记录下offset


PipeliningWithin A Job

大体设计: map生成的数据通过一个持续的tcp连接到reduce
: tcp连接太多; 没有足够的slot去调度
解决方法:如果没有足够slot去调度,就写入到disk,和传统的hadoop一样.
       为了解决tcp太多的,可以运用有限制的tcp,剩下的传统的一样,写到disk
另一个是线程阻塞,用两个线程解决
管道破坏了combiner函数的作用
解决方式: 保留一个缓冲有一个门槛值,达到一定数量的值时,用combiner函数处理后, 在发送给reducer.



Task Scheduling

就是流水式调度

Online Aggregation
Single-Job Online Aggregation
Progress Metric
通过hadoop自身的进度监控机制来改进以确定啥时候去snapshot。
首先是改变一条数据的格式描述,使其带有进度信息,然后reduce计算平均进度来快照。

Multi-Job Online Aggregation
任务间传递进度,缺点是进度传递不准确,多任务间会非常不准确

Continuous Queries
Continuous MapReduce Jobs
加了一个flush 接口 ,其他简单无需改动
应用有不同的reduce函数的引用频率
需要弹性的task 数量

Background and Configuration

Map任务包括2个工作阶段 : map和sort。主要任务在map阶段。Map加工完数据,然后在分类。
Reduce任务分为3个工作阶段:shuffle,reduce 和commit。
其中shuffle阶段要消耗75%的时间,剩下的reduce和commit占用25%的时间
Reudce任务周期性的对map发来的数据进行shuffle,这样可以减少最终的shuffle时间,最后运行最终的分类合并,进入reduce阶段。
当reduce任务已经成为bottleneck的时候,管道也只能带来少许益处,甚至能降低性能。

Prototype Monitoring System

组成:
Agents that run on each monitored machine
每个代理作为一个持续的map任务,将统计的数据发送给aggregator(一个持续的reduce任务)
每个aggregator可能发送给上面一个新的aggragator, 或者报告
2) Record statistics of interest (e.g., load average, I/O operations per second, etc.).




已有(2)人评论

跳转到指定楼层
top_gloria 发表于 2013-10-26 15:11:46
Continuous Queries
Continuous MapReduce Jobs
加了一个flush 接口 ,其他简单无需改动
应用有不同的reduce函数的引用频率
需要弹性的task 数量
错误容忍没看懂

Prototype Monitoring System
组成:
Agents that run on each monitored machine
每个代理作为一个持续的map任务,将统计的数据发送给aggregator(一个持续的reduce任务)
每个aggregator可能发送给上面一个新的aggragator, 或者报告
2) Record statistics of interest (e.g., load average, I/O operations per second, etc.).

性能评估:
主要对减少运行时间进行问题
任务:a wordcount job over randomly-generated text

Background and Configuration
Map任务包括2个工作阶段 : map和sort。主要任务在map阶段。Map加工完数据,然后在分类。
Reduce任务分为3个工作阶段:shuffle,reduce 和commit。
其中shuffle阶段要消耗75%的时间,剩下的reduce和commit占用25%的时间
Reudce任务周期性的对map发来的数据进行shuffle,这样可以减少最终的shuffle时间,最后运行最终的分类合并,进入reduce阶段。
当reduce任务已经成为bottleneck的时候,管道也只能带来少许益处,甚至能降低性能。

Small Job Results
一些实验结果
回复

使用道具 举报

atsky123 发表于 2013-10-26 15:11:46
你好,可以交流一下吗吗?我的QQ:330810851 email zgats1@163.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条