MapReduce基于分而治之的思想,用于大规模数据集(大于1TB)的并行计算和离线计算,特点如下:
- 高度抽象的编程思想:程序员仅需描述做什么,具体怎么做由系统的执行框架处理
- 良好的扩展性:可以通过添加节点以扩展集群的能力
- 高容错性:通过计算迁移或数据迁移等策略提高集群的可用性与容错性
Yarn它是一种新的Hadoop资源管理器,他是一个通用资源管理系统,可以为上层应用提供一的资源管理和调度,它的引入为集群在利用率、资源统一管理和共享等方面带来了巨大的好处。
一、MapReduce1.1、MapReduce过程
- Map面对杂乱无章的互不相干的数据,解析他的每个数据,从里面提取可以key和value,也就是提取了数据的特征
- 到了Reduce阶段,数据是以key后面跟着若干个value来组织的,这些value有相关性。在此基础上我们可以做进一步的处理以便得到结果
1.2Map、Reduce过程详细
1.3shuffer过程详细
2.1、Year的组件架构
2.2、MapReduce在Yarn的任务调度流程
3.1、资源管理
每个NodeManager可分配的内存和cpu的数量可以通过配置选项设置(可以在Yarn服务配置或者页面配置)
3.2、三种资源调度器
- FIFO Scheduler(先进先去):
- Capacity Scheduler(容量调度器):容量调度器的队列里面采用的是FIFO策略
- Fair Scheduler(公平调度器):保证每一个任务分配的资源是公平的
3.3容量调度器的特点 - 容量保证:可以设置队列的最低资源和资源使用的上限
- 灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列
- 支持优先级:支持任务优先级调度(默认FIFO策略)
- 多重租赁:支持多个用户共享集群和多应用程序同时运行
- 动态更新配置文件:可以更具需要动态修改配置参数。
3.4容量调度器的任务选择
3.5、查看队列的信息
队列的信息可以通过Yarn 、webUI 进行查看



