大数据面试题MR部分及答案(14道)

本文详细介绍了Hadoop MapReduce的运行原理,包括HDFS的读写流程和MapReduce的工作机制。此外,还讨论了MapReduce数据倾斜问题及其解决方案,Combiner的作用,设置Reducer个数的方法,以及MapReduce处理小文件的策略。同时,涵盖了MapReduce的完整过程,只包含Map阶段的情况,Map输出端的组成部分,以及如何在编程角度理解MR过程。最后,文章提供了实现JOIN操作的MapReduce方法,以及InputSplit的概念和MapReduce中使用的接口。
摘要由CSDN通过智能技术生成

1.hadoop运行原理
MapReduce
HDFS 分布式文件系统(HDFS客户端的读写流程)
写:
客户端接收用户数据,并缓存到本地
当缓存足够一个HDFS大小的时候
客户端同NameNode通讯注册一个新的块
注册成功后 NameNode给客户端返回一个DateNode的列表
客户端向列表中的第一个DateNode写入块
收到所有的DateNode确认信息后,客户端删除本地缓存
客户端继续发送下一个块
重复以上步骤 所有数据发送完成后,写操作完成
读:
客户端与NameNode通讯获取文件的块位置信息,包括块的所有冗余备份的位置信息:DateNode列表
客户端获取文件位置信息后直接同有文件块的DateNode通讯,读取文件
如果第一个DateNode无法连接,客户端将自动联系下一个DateNode
如果块数据的校验值出错,则客户端需要向NameNode报告,并自动联系下一个DateNode

客户端的hadoop环境:与集群的hadoop包一样
集群入口:core-site.xml、fs.default.name
缓存块大小:fs.block.size
存多少份:fs.replication

2.mapreduce的原理

mapreduce的原理:一个MapReduce框架由一个单独的master JobTracker和集群节点每一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,在这些slave上,master监控它们的执行,并且重新执行已经失败的任务。而slave仅负责执行由maste指派的任务。

3.Mapreduce数据倾斜是什么意思?怎么处理?
Mapreduce数据倾斜是指我们在分片的时候导不同分片上的数据不均,导致这些分片在并行处理的时候,有的分片执行事件过长,有的执行时间过短,导致总的执行时间过长的一种现象,通常是由:1.map端的key值过多或者有空值;2.业务本身的特性;3.某些sql就有数据倾斜;4.建表的时候考虑不周等原因造成的。
处理:1.如果是大量数据的时候可以做基于map的key值离散。通过写一个for循环给过多的key打标签。
2.数据量小的时候,且输入的结果不会影响到reduce输入的结果,且不做平均值的时候,用基于map端之后shuffle端之前的reduce操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值