一.MapReduce简介
1.Mapreduce 是一个分布式运算程序的编程框架,适用于海量的数据离线处理,并且易于编程,有良好的扩展性,和高容错性。
2.Mapreduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的 分布式运算程序,并发运行在一个 hadoop 集群上。
3.Mapreduce有两个阶段组成:Map和Reduce,用户只需实现map()和reduce()两个函数,即可实现分布式计算。
4.MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave
二.Mapreduce的体系结构
1.Client:
用户编写的MapReduce程序通过Client提交到JobTracker端
用户可通过Client提供的一些接口查看该作业运行状态、
2.JobTracker:
JobTracker负责资源监控和作业调度
JobTracker监控所有TaskTracker与Job的健康状况,一旦发现失败,就将相应的任务转移到其他节点上
3.TaskTracker:
TaskTracker 会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)
4.Task:
Task 分为Map Task 和Reduce Task 两种,都由TaskTracker 启动