作业5

一. 单选题(共8题,16分)

1. (单选题, 2分)下列传统并行计算框架,说法错误的是哪一项?

  • A.

    刀片服务器、高速网、SAN,价格贵,扩展性差上

     

  • B.

    共享式(共享内存/共享存储),容错性好

     

  • C.

      编程难度高

     

  • D.

     实时、细粒度计算、计算密集型

     

我的答案: B:共享式(共享内存/共享存储),容错性好 ;正确答案: B:共享式(共享内存/共享存储),容错性好 ;
 
2

2. (单选题, 2分)下列关于MapReduce模型的描述,错误的是哪一项?

  • A. MapReduce采用“ 分而治之”策略
  • B. MapReduce设计的一个理念就是“ 计算向数据靠拢”
  • C.

    MapReduce框架采用了Master/Slave架构

     

  • D.

    MapReduce应用程序只能用Java来写

     

我的答案: D:MapReduce应用程序只能用Java来写 ;正确答案: D:MapReduce应用程序只能用Java来写 ;
 
2

3. (单选题, 2分)MapReduce1.0的体系结构中,JobTracker是主要任务是什么?

  • A.

    负责资源监控和作业调度,监控所有TaskTracker与Job的健康状况

     

  • B.

    使用“slot”等量划分本节点上的资源量(CPU、内存等)

     

  • C.

    会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给TaskTracker

     

  • D.

    会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务(Task)

     

我的答案: A:负责资源监控和作业调度,监控所有TaskTracker与Job的健康状况 ;正确答案: A:负责资源监控和作业调度,监控所有TaskTracker与Job的健康状况 ;
 
2

4. (单选题, 2分)下列关于MapReduce工作流程,哪个描述是正确的?

  • A.

    所有的数据交换都是通过MapReduce框架自身去实现的

     

  • B.

    不同的Map任务之间会进行通信

     

  • C.

    不同的Reduce任务之间可以发生信息交换

     

  • D.

    用户可以显式地从一台机器向另一台机器发送消息

     

我的答案: A:所有的数据交换都是通过MapReduce框架自身去实现的 ;正确答案: A:所有的数据交换都是通过MapReduce框架自身去实现的 ;
 
2

5. (单选题, 2分)下列关于MapReduce的说法,哪个描述是错误的?

  • A.

    MapReduce具有广泛的应用,比如关系代数运算、分组与聚合运算等

     

  • B.

    MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数

     

  • C.

    编程人员在不会分布式并行编程的情况下,也可以很容易将自己的程序运行在分布式系统上,完成海量数据集的计算

     

  • D.

    不同的Map任务之间可以进行通信

     

我的答案: D:不同的Map任务之间可以进行通信 ;正确答案: D:不同的Map任务之间可以进行通信 ;
 
2

6. (单选题, 2分)下列关于Map和Reduce函数的描述,哪个是错误的?

  • A.

    Map将小数据集进一步解析成一批<key,value>对,输入Map函数中进行处理

     

  • B.

    Map每一个输入的<k 1 ,v 1 >会输出一批<k 2 ,v 2 >。<k 2 ,v 2 >是计算的中间结果

     

  • C.

     Reduce输入的中间结果<k 2 ,List(v 2 )>中的List(v 2 )表示是一批属于不同k 2 的value

     

  • D.

    Reduce输入的中间结果<k 2 ,List(v 2 )>中的List(v 2 )表示是一批属于同一个k 2 的value

     

我的答案: C: Reduce输入的中间结果<k 2 ,List(v 2 )>中的List(v 2 )表示是一批属于不同k 2 的value ;正确答案: C: Reduce输入的中间结果<k 2 ,List(v 2 )>中的List(v 2 )表示是一批属于不同k 2 的value ;
 
2

7. (单选题, 2分)关于MapReduce1.0的体系结构的描述,下列说法错误的是?

  • A.

    Task 分为Map Task 和Reduce Task 两种,分别由JobTracker 和TaskTracker 启动

     

  • B.

    slot 分为Map slot 和Reduce slot 两种,分别供MapTask 和Reduce Task 使用

     

  • C.

    TaskTracker 使用“slot”等量划分本节点上的资源量(CPU、内存等)

     

  • D.

    TaskTracker 会周期性接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)

     

我的答案: A:Task 分为Map Task 和Reduce Task 两种,分别由JobTracker 和TaskTracker 启动 ;正确答案: A:Task 分为Map Task 和Reduce Task 两种,分别由JobTracker 和TaskTracker 启动 ;
 
2

8. (单选题, 2分)下列说法错误的是?

  • A.

     Hadoop MapReduce是MapReduce的开源实现,后者比前者使用门槛低很多

     

  • B.

    MapReduce采用非共享式架构,容错性好

     

  • C.

    MapReduce主要用于批处理、实时、计算密集型应用

     

  • D.

    MapReduce采用“ 分而治之”策略

     

我的答案: A: Hadoop MapReduce是MapReduce的开源实现,后者比前者使用门槛低很多 ;正确答案: C:MapReduce主要用于批处理、实时、计算密集型应用 ;
 
0

二. 多选题(共6题,16分)

9. (多选题, 2.6分)MapReduce相较于传统的并行计算框架有什么优势?

  • A.

    非共享式,容错性好

     

  • B. 普通PC机,便宜,扩展性好
  • C.

    编程简单,只要告诉MapReduce做什么即可

     

  • D.

    批处理、非实时、数据密集型

     

我的答案: ABD:非共享式,容错性好 ; 普通PC机,便宜,扩展性好; 批处理、非实时、数据密集型 ;正确答案: ABCD:非共享式,容错性好 ; 普通PC机,便宜,扩展性好; 编程简单,只要告诉MapReduce做什么即可 ; 批处理、非实时、数据密集型 ;
 
1.3

10. (多选题, 2.6分)MapReduce体系结构主要由以下哪几个部分构成?

  • A.

     Client

     

  • B.

    JobTracker

     

  • C.

    TaskTracker

     

  • D.

    Task

     

我的答案: ABCD: Client ; JobTracker ; TaskTracker ; Task ;正确答案: ABCD: Client ; JobTracker ; TaskTracker ; Task ;
 
2.6

11. (多选题, 2.7分)下列关于MapReduce的体系结构的描述,说法正确的有?

  • A. 用户编写的MapReduce程序通过Client提交到JobTracker端
  • B.

    JobTracker负责资源监控和作业调度

     

  • C.

    TaskTracker监控所有TaskTracker与Job的健康状况

     

  • D.

    TaskTracker 使用“slot”等量划分本节点上的资源量(CPU、内存等)

     

我的答案: ABC:用户编写的MapReduce程序通过Client提交到JobTracker端; JobTracker负责资源监控和作业调度 ; TaskTracker监控所有TaskTracker与Job的健康状况 ;正确答案: ABD:用户编写的MapReduce程序通过Client提交到JobTracker端; JobTracker负责资源监控和作业调度 ; TaskTracker 使用“slot”等量划分本节点上的资源量(CPU、内存等) ;
 
0

12. (多选题, 2.7分)下列关于Map 端的Shuffle的描述,哪些是正确的?

  • A.

    当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce

     

  • B.

     MapReduce默认为每个Map任务分配1000MB缓存

     

  • C. 多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的
  • D. 每个Map任务分配多个缓存,使得任务运行更有效率
我的答案: AC:当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce ; 多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的;正确答案: AC:当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce ; 多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的;
 
2.7

13. (多选题, 2.7分)MapReduce执行的全过程包括以下哪几个主要阶段?

  • A.

    从分布式文件系统读入数据

     

  • B.

    执行Map任务输出中间结果

     

  • C. 通过 Shuffle阶段把中间结果分区排序整理后发送给Reduce任务
  • D.

     执行Reduce任务得到最终结果并写入分布式文件系统

     

我的答案: ABCD:从分布式文件系统读入数据 ; 执行Map任务输出中间结果 ; 通过 Shuffle阶段把中间结果分区排序整理后发送给Reduce任务; 执行Reduce任务得到最终结果并写入分布式文件系统 ;正确答案: ABCD:从分布式文件系统读入数据 ; 执行Map任务输出中间结果 ; 通过 Shuffle阶段把中间结果分区排序整理后发送给Reduce任务; 执行Reduce任务得到最终结果并写入分布式文件系统 ;
 
2.7

14. (多选题, 2.7分)下列说法正确的是?

  • A.

    MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task

     

  • B.

    Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动

     

  • C.

     在MapReduce工作流程中,所有的数据交换都是通过MapReduce框架自身去实现的

     

  • D. 在MapReduce工作流程中,用户不能显式地从一台机器向另一台机器发送消息
我的答案: ABCD:MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task ; Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动 ; 在MapReduce工作流程中,所有的数据交换都是通过MapReduce框架自身去实现的 ; 在MapReduce工作流程中,用户不能显式地从一台机器向另一台机器发送消息;正确答案: ABCD:MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task ; Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动 ; 在MapReduce工作流程中,所有的数据交换都是通过MapReduce框架自身去实现的 ; 在MapReduce工作流程中,用户不能显式地从一台机器向另一台机器发送消息;
 
2.7

三. 简答题(共1题,20分)

15. (简答题, 20分)

请在以下两题中任选一题作答:

(1)通过查阅资料,写出一个或多个MapReduce的具体应用,并谈谈自己对MapReduce的认识。(满分10分)

(2)词频统计任务编程实践,任务要求:在Linux系统本地创建两个文件,即文件wordfile1.txt和wordfile2.txt,文件wordfile1.txt的内容格式如下,需要将zhangsan换成自己名字的英文全拼:

zhangsan loves Spark

zhangsan loves Hadoop

文件wordfile2.txt的内容如下:

 

Hadoop is good

Spark is fast

请对这两个小数据集样本编写MapReduce词频统计程序,并截图给出统计结果,可参考相关教程https://dblab.xmu.edu.cn/blog/2481/。(满分20分)

posted @ 2023-10-24 22:27  会秃头的小白  阅读(280)  评论(0编辑  收藏  举报