- MapReduce是一种面向大规模海量数据处理的高性能并行计算平台和软件编程框架;
- 广泛应用于各种大规模数据并行计算应用领域。
一、MapReduce框架
MapReduce采用和HDFS一样的Master/Slave(M/S)主从架构,它由Client、JobTracker、TaskTracker和Task四个组件组成。
1. Client
- 在Hadoop内部用作业(Job)表示MapReduce程序;
- 用户编写MapReduce程序,通过client提交到JobTracker端;同时,用户通过client提供的一些接口查看作业运行状态;
- 一个MapReduce程序可对应若干个作业,而每个作业会被分解为若干个Map/Reduce任务。
2. JobTracker
- JobTracker主要负责资源监控和作业调度;
- JobTracker监控所有TaskTracker与作业的健康状态,一旦发现失败情况,其会将相应的任务转移到其它节点;同时,JobTracker会跟踪任务的执行进度、资源使用量等信息,并将信息告知任务调度器;
- 任务调度器会在资源出现空闲时,选择合适的任务使用这些资源;
- 在Hadoop中,任务调度器是一个可插拔的模块,用户可根据自己的需要设计相应的任务调度器。 <