【云平台技术】作业六

一、填空题

1、在MapReduce中, Map 阶段负责将任务分解, Reduce 阶段将任务合并。

2、MapReduce工作流程分为 分片 格式化数据源 执行Map Task 执行Shuffle过程 写入文件

3Partitioner组件目的是 key均匀分布在ReduceTask

二、判断题

1、Map阶段处理数据时,是按照Key的哈希值与ReduceTask数量取模进行分区的规则。(√)

2、分区数量是ReduceTask的数量。(√)

3、在MapReduce程序中,必须开发Map和Reduce相应的业务代码才能执行程序。(×)

三、选择题

1、MapReduce适用于( D )

A、任意应用程序 

B、任意可以在Windows Server 2008上的应用程序

C、可以串行处理的应用程序   

D、可以并行处理的应用程序

2、下面关于MapReduce模型中Map函数与Reduce函数的描述正确的是( A )

A、一个Map函数就是对一部分原始数据进行指定的操作。

B、一个Map操作就是对每个Reduce所产生的一部分中间结果进行合并操作。

C、Map与Map之间不是相互独立的。

D、Reducee与Reduce之间不是相互独立的。

3、MapReduce自定义排序规则需要重写下列那项方法( B )

A、readFields()  

B、 compareTo()    

C、 map()  

D、reduce()

四、简答题

        1、简述HDFS Block与MapReduce split之间的联系。            

答:Block:HDFS中最小的数据存储单位,默认是128M;

Split:MapReduce中最小的计算单元,默认与Block一一对应。两者的对应关系是任意的,可有用户控制。

        2、简述Shuffle工作流程。

答:(1)map结果写入环形内存缓冲区,当内存不足以存储所有数据时,将数据批量**溢写**到磁盘。为了尽量减少IO消耗,所以在数据写入磁盘之前会先写入缓冲区,待缓冲区达到==阈值(0.8)==后才批量将数据写入磁盘。

(2)partition分区。在数据写入磁盘之前会先进行分区,一个分区对应一个reducer,期望数据在多个reducer之间达到均衡。

(3)排序(sort)和合并(combine)。数据经过分区之后,先按照key进行排序,如果用户指定了Combiner,再进行combine操作。

(4)溢写(spill)。经过排序和合并之后的数据会写入磁盘文件,每次spill都会产生一个文件。一个分区上的文件也叫一个segment。

(5)归并(merge)。一个map最终会生成一个磁盘文件,由于多次spill会产生多个文件,所以需要将这些文件进行merge,最终形成一个有序的大文件。merge过程中有可能遇到相同key的数据,如果用户设置了Combiner,会执行combine操作。

以上1-5是map阶段的shuffle,以下是reduce阶段的shuffle步骤

(1)拷贝(copy)。当某个map完成后,reduce不断拉取map生成的文件到ruduce。和map阶段一样先将数据写入环形内存缓冲区,当达到阈值时,将数据批量溢写到磁盘。

(2)排序(sort)和归并(merge)。sort是伴随copy动作时执行的,由于map的输出是有序的,所以copy是进行sort消耗很低。当溢写数据到磁盘之前,如果用户设置了Combiner会先进行combine,然后将数据写入磁盘文件。当接受完map数据会生成多个溢写磁盘文件,将这些文件归并merge,合并成一个有序的大文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值