[大数据面试题]hadoop核心知识点
* 面试答案为LZ所写,如需转载请注明出处,谢谢。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1.MR意义。
MR是一个用于处理大数据的分布式离线计算框架,它采用”分而治之“的思想。
在分布式计算中,将分布式存储、分布式计算、负载均衡等复杂问题高度抽象成map和reduce两个过程。
MR存在的意义在于它使得计算更廉价,大规模数据计算不再需要高级商用机器。
其次是这个软件的现成实现可以把程序员的精力集中在业务开发上,节省开发时间。
2.简述MR过程。
MapReduce是一种应用于大数据离线处理的分布式计算模型。
MR过程分为 Split 、map 、Suffle、reduce 过程。
首先在MapReduce之前,需要通过Split过程将数据进行切割,切割后的数据以便于成为map的输入。
然后通过Map过程将切割后的数据分别转成KV对形式。
Shuffle过程分为partitioning、sort、grouping 三步:
1).partitioning : 对KV进行分区(默认使用的是hash partitioner)
2).sort : 对分区内的数据(KV对)依据Key进行排序
3).grouping:将对相同Key的KV对合并成组。
每个组的数据分别交由各个Reduce Task进行处理。
另说一点感悟:
关于shuffle过程,我们其实很好理解。一般处理大数据集的二次排序问题,
都是采用 "散列 + Sort" 的思路,位列便于reduce计算,还需要进行一个grouping过程。
3.hadoop和spark的都是并行计算,那么他们有什么相同和区别
先说一说区别:
首先,两者的一个显著不同就是Spark是基于内存计算的,存取数据比Hadoop的MapReduce快很多。
其次,hadoop基于MapReduce计算模型,Spark采用的是基于DAG的计算模型,MapReduce的处理过程具有一定时序性的约束,而Spark可以达到高度并行。
相同:
