首先放一张官方图片,大致了解下整个MapReduce的处理过程。
抛出如下疑问:
1、MapReduce的基本原理是什么?即利用什么机制来实现的任务拆分处理?
2、MapReduce任务执行过程是什么?任务怎么提交?如何运行?哪个组件或者模块可以监控任务的运行状态,比如YARN服务?数据存储(原始数据、中间数据、输出结果)依赖什么基础构件?
3、输入数据怎么进行切割分片?即所谓的input split,比如分割依赖数据输入和HDFS Block块大小,分割结果决定Map任务个数。
4、map过程如何实现?即所谓的map task;
5、map输出的过程是什么?输出的数据怎么存储的?如何提高输出时的性能?比如输出内容是否排序,如何存盘,如何处理可以更方便后续的reduce任务处理。
6、map输出数据到reduce的task过程中,数据是怎么汇聚起来的?即所谓的shuffle过程;
7、reduce任务怎么处理?输出结果的格式?比如是否需要压缩,以何种压缩方式压缩?
8、MapReduce任务的并行处理和串行处理?
9、MapReduce适用的场景是什么?
10、MapReduce的可靠性怎么处理?
11、MapReduce参数配置
12、MapReduce性能调优