MapReduce的基本原理

来源:互联网 发布:胡夏 知乎 编辑:程序博客网 时间:2024/05/22 10:28

MapReduce是一个软件框架,可方便的编写应用程序,以并行的方式在数千商用硬件组成的集群节点中处理数TB的数据,并且提供了可靠性和容错的能力。


MapReduce处理模型包括两个独立的步骤:

-并行Map阶段,输入数据被分割成离散块以便可以单独处理。

-shuffle阶段,每个Reduce的输入都是按照键排序的,系统执行排序的过程;

-Reduce阶段,汇总Map阶段的输出生成预期的结果。


JobTracker:负责TaskTracker的资源管理,跟踪资源使用率,管理作业的生命周期,如调度作业的各个任务,跟踪进度,以及为任务提供容灾服务。

TaskTracker:根据JobTracker的命令启动/清除任务,并且周期性地向JobTracker提供任务的状态信息。


MapReduce的缺陷:

1.可扩展性

-JobTracker内存中保存用户作业的信息

-JobTracker使用的是粗粒度的锁(节点心跳时间过长)

2.可靠性和可用性

-JobTracker失效会丢失集群中所有的运行作业,用户需要手动重新提交和恢复工作流

3.对不同编程模型的支持

-以MapReduce为中心的设计,不适合大型计算,需要新一个阶段的计算平台。



0 0