MapReduce2.0原理,基本架构面试相关


一、MapReduce基本概念的理解

1、HDFS block和MapReduce split之间的联系?两者之间是否存在严格的对应关系?

答:Block:HDFS中最小的数据存储单位,默认是64M;Split:MapReduce中最小的计算单元,默认与Block一一对应。

两者的对应关系是任意的,可有用户控制。

2、假设HDFS的block大小为64M,采用TextInputFormat,现有一个目录,下面两个文件

大小分为1M和120M,MapReduce处理这个目录下的数据时,默认情况下,将启动几个Map Task?

答:3个                   答案待解救

3、Mapreduce将作业分成两个阶段,分别是Map阶段和Reduce阶段,请问:

Partitioner,Combiner,Shuffle分别位于哪个阶段中?

答:Partitioner:数据分组 决定了Map task输出的每条数据交给哪个Reduce Task处理。

默认实现:hash(key) mod R R是Reduce Task数目,允许用户自定义,很多情况下需要自定义Partitioner ,比如

“hash(hostname(URL)) mod R”确保相同域名的网页交给同一个Reduce Task处理 (map)

Combiner:可以看做local reduce  合并相同的key对应的value,通常与reducer逻辑一样 ,好处是减少map task输出 数量(磁盘IO),见少Reduce-map网络传输数据量(I网络IO) 结果叠加 (map)

Shuffle:Shuffle描述着数据从map task输出到reduce task输入的这段过程 (

  • 完整地从map task端拉取数据到reduce 端。
  • 在跨节点拉取数据时,尽可能地减少对带宽的不必要消耗。
  • 减少磁盘IO对task执行的影响。
) (reduce)

4、



你可能感兴趣的:(hadoop)