大数据知识点梳理-Hadoop生态之MapReduce

1.2 MapReduce

特别说明:“红色字体”标题均为高频面试题

  • 1.2.1 *MR的执行流程?
  • 1.2.2 *MapReduce写过吗?有哪些关键类? mapper 的方法有哪些? setup方法是干嘛的?它是每读取一行数据就调用一次这个方法吗?
  • 1.2.3 有个需求,要求-条指令可以把所有文件都shuffle到同一partition 中,用MapReduce的话,你怎么写?
  • 1.2.4 *Hadoop Shuffle原理(越详细越好)?
  • 1.2.5 *combine函数的作用?
  • 1.2.6 *简列几条MapReduce的调优方法?
  • 1.2.7 *Hadoop中有哪几个进程,各自的作用是什么?
  • 1.2.8 *Yarn的job提交流程?
  • 1.2.9 现块的大小为128M,现在有一文件大小为260M,进行spilt的时候,会被分成几片?
  • 1.2.10 *列举MR中可干预的组件(详细说明各组件的原理,ps: combine) ?
  • 1.2.11 *分片与分块的区别?
  • 1.2.12 *resourceManager的工作职责?
  • 1.2.13 *NodeManager的工作职责?
  • 1.2.14 *简述Hadoop的调度器
  • 1.2.14.3 Fair Scheduler (公平调度器)
  • 1.2.15 *我们开发job时,是否可以去掉reduce阶段。
     

1.2.1 *MR的执行流程?

MR的整体执行流程: (Yarn 模式)
    1. 在MapReduce程序读取文件的输入目录上存放相应的文件。
    2.客户端程序在submit()方法执行前,获取待处理的数据信息,然后根据集群中的参数的配置形成一个任务分配规划。
    3.客 户端提交切片信息给Yarn, Yarn 中的resourcemanager启动MRAPPmaster。
    4.MrAPPmaster启动后根据本次job的描述信息,计算出需要的maptask实例对象,然后向集群申请机器启动相应数量的maptask进程。
    5. Maptask 利用客户端指定的inputformat来读取数据,形成输出的KV键值对。
    6. Maptask 将输入KV键值对传递给客户定义的map ()方法,做逻辑运算。
    7. Map ()方法运算完毕后将KV对收集到maptask缓存。
    8. shuffle阶段:
      (1) maptask 收集我们的map ()方法输出的KV对,放到环形缓存区中。
      (2) maptask 中的KV对按照K分区排序,并不断溢写到本地磁盘文件,可能会溢出多个文件。
      (3)多个文件会被合并成大的溢出文件。
      (4)在溢写过程中,及合并过程中,都会不停的进行分区和针对key的排序操作。
      (5) Reducetask 根据自己的分区号,去各个maptask机器上获取相应的结果分区数据。
      (6) Reducetask会取到同-一个分区的来自不同maptask 的结果文件,reducetask 会将这些文件再进行归并排序。
      (7)合并成大文件后,shuffle的过程也就结束的,后面进入reducetask的逻辑运算过程(从文件中取出一一个一个的键值对group,调用用户自定义的reduce ()方法)。
    9. MrAPPmaster 监控到所有的maptask进程任务完成后,会根据客户指定的参数启动相应数量的reducetask进程,并告知reducetask进程要处理的数据分区。
    10. reducetask 进程启动后,根据MrAPPmaster告知的待处理数据所在位置,从若干台maptask运行所在机器上获取若干个maptask输出结果文件,并在本地进行重新归并排序,然后按照相同key的KV为-一个组,调用客户定义的reduce)方法进行逻辑运算。
    11. reducetask 运算完毕后,调用客户指定的outputformat将结果数据输出到外部。


【面试指导&技巧】

    MR的执行流程基本上是-一个必问的问题。所以该问题必须掌握。
    建议通过画图的方式,进行理解记忆。
    需要能够回答出整体流程以及其中的细节,回答出其中的关键步骤、Shuffle机制等。

 


1.2.2 *MapReduce写过吗?有哪些关键类? mapper 的方法有哪些? setup方法是干嘛的?它是每读取一行数据就调用一次这个方法吗?

1.关

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值