十条Word的经典使用技巧
662
2022-05-28
在上一个阶段——HDFS,小菌出过一期HDFS的经典面试题,不知道小伙伴们掌握的怎么样吖(详情见–>《HDFS经典面试题》),本期同样在MapReduce快要结束阶段为大家带来MapReduce的经典面试题!
MapReduce核心思想
map负责切分,reduce负责合并(先分后合,分而治之)
1
如何理解偏移量
每行的行首到首行行首的距离
1
Suffle包含哪些步骤
分区(partition)------->排序(sort)------->数据优化计算(combine)------->分组(group)
1
MR从读取数据开始到将最终结果写入HDFS经过哪些步骤
第一步:inputformat 数据读取 ↓ ↓ 第二步:split 将获取的数据进行逻辑切分 ↓ ↓ 第三步: recordReader(将数据以\n切分,进行再次切分,并输出key(行首字母的偏移量),value(一行的数据)) ↓ ↓ 第四步: Map接收key(行首字母偏移量),value(一行的数据),根据业务需求编写代码,输出(key,value 的list) ↓ ↓ 输出给Shuffle(partition) ↓ ↓ shffle(核心机制: 数据分区,排序,分组,ComBine,合并等过程)输出key value的list ↓ ↓ 第五步:partition :按照一定的规则对key,value 的 list 进行分区 输出给Shuffle(sort) ↓ ↓ 第六步:Sort :对每个分区内的数据进行排序。 输出给Shuffle(combiner) ↓ ↓ 第七步: Combiner: 在Map端进行局部聚合(汇总) 目的是为了减少网络带宽的开销 输出给Shuffle(group) ↓ ↓ 第八步: Group: 将相同key的key提取出来作为唯一的key,将相同key 对应的value 提取出来组装成一个value 的List 输出给Shuffle(reduce) ↓ ↓ 第九步: Reduce:根据业务需求对传入的数据进行汇总计算 输出给Shuffle(outputFormat) ↓ ↓ 第十步: outputFormat:将最终的结果的写入到HDFS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
如何设置ReduceTask的数量
job.setNumReduceTasks(个数);
1
Combiner的作用
Map结束后,在Map端进行局部聚和。作用:较少网络传出次数,降低了网络带宽开销。
1
combiner运行在MapReduce的哪一端?
Map端。在Map端中shuffle中。
1
Maptask的数量是可以人为设置的吗?
不可以
1
2
Shuffle阶段的Partition分区算法是什么
对map输出的key 取哈希值,用这个哈希值与reducetask的个数值取余。 余几,就将这个key,value放在对应的分区编号里(分区有多个编号)。
1
2
Split逻辑切分数据,节分大小是多大?
128M
1
内存角度介绍Map的输出到Reduce的输入的过程。
`Map的输出到内存` Map将数据传入环形缓冲区(默认100MB 可修改),环形缓冲区中的数据到达一定的阈值时(默认0.8 可修改)进行溢写生成好多临 时文件,多个临时文件到达一定数量进行merge合并成一个大文件。 `Reduce数据读取` reduce会主动去发起拷贝线程到maptask获取属于自己的数据,数据会进入ReduceTask中的环形缓冲区,当缓冲区中的数据量到达 一定阈值进行溢写,多个临时文件merge合并成一个大文件,最后输入到Reduce。
1
2
3
4
5
6
7
最优的Map效率是什么?
Map端的最高效率是:尽量减少环形缓冲区flush的次数(减少磁盘IO 的使用次数) 增加环形缓冲区内存 将阈值上调 压缩map输出的数据大小(消耗cpu)
1
2
3
4
最优的reduce是什么?
Reduce端的最高效率是:尽量减少环形缓冲区flush的次数 尽量将数据放在内存上进行计算
1
2
在MR阶段,有哪些可以优化的点?
1、加大环形缓冲区的内存 2、增大缓冲区阈值的大小 (考虑剩余的空间是不是够系统使用) 3、对输出的进行压缩(压缩-解压的过程会消耗CPU)
1
2
3
集群优化的核心思路是什么?
在网络带宽、磁盘IO是瓶颈的前提下 能不使用IO 网络就不使用,在必须使用的前提下,能少用就少用。 所有的,只要能够减少网络带宽的开销,只要能够减少磁盘io的使用的次数的配置项,都是集群调优的可选项。 (可选项包括: 软件层面【系统软件和集群软件】,硬件层面,网络层面)
1
2
3
4
5
本期MapReduce经典面试题的分享就到这里了,受益的小伙伴们不要忘了关注小菌。后续小菌将推出Hadoop之Hive系列!敬请期待(๑>︶<)و
Hadoop MapReduce
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。