MapReduce相关面试问题整理

1. 以Word Count为例, 描述下MapReduce的执行过程.

Map阶段, 将每行的数据经过切分后, 得到<key, value>对, 每个切分出的单词为key, 1为value.Mapper对获得的键值对按key进行排序.
Reduce阶段, 经过Shuffle整合Mapping阶段输出的相关记录, 汇总整合Shuffle阶段的值并返回单个输出.
WordCount流程

2. 对于MapReduce的各个阶段你觉得有什么优化空间?

数据输入
默认情况下TextInputFormat对任务的切片是按文件切, 无论文件大小, 都会给一个单独的切片, 交给一个maptask, 这时如果输入的是大量小文件, 就会产生大量的maptask, 处理效率极低.

最好的解决方法就是在预处理阶段将小文件合并, 再上传到HDFS处理分析.

但如果已经上传到HDFS了, 就可以用另一种切片方法来补救, CombineTextInputFormat, 它的切片逻辑和TextInputFormat不同, 可以将多个小文件从逻辑上规划到一个切片中, 然后把这些小文件交给一个maptask.
运行时间
启动一个MapReduce任务, map阶段和reduce阶段都会有并行的task共同处理任务, 这些task都需要开启JVM, 然后初始化, 而这些JVM任务是很花费空间的, 如果运行一个2

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值