2024.10.16

一. 单选题(共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将小数据集进一步解析成一批对,输入Map函数中进行处理
  • B. Map每一个输入的会输出一批。是计算的中间结果
  • C. Reduce输入的中间结果中的List(v 2 )表示是一批属于不同k 2 的value
  • D. Reduce输入的中间结果中的List(v 2 )表示是一批属于同一个k 2 的value
我的答案: C:Reduce输入的中间结果中的List(v 2 )表示是一批属于不同k 2 的value;正确答案: C:Reduce输入的中间结果中的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采用“ 分而治之”策略
我的答案: D:MapReduce采用“ 分而治之”策略;正确答案: C:MapReduce主要用于批处理、实时、计算密集型应用;
 
0分

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

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

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

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

  • A. Client
  • B. JobTracker
  • C. TaskTracker
  • D. Task
我的答案: CD:TaskTracker; Task;正确答案: ABCD:Client; JobTracker; TaskTracker; Task;
 
1.3分

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

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

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

三. 简答题(共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分)

我的答案:
10分

MapReduce的具体应用

社交网络数据处理

1.应用场景:分析社交媒体平台上的用户互动,如点赞、评论和分享。

实现:Mapper处理用户活动数据,提取用户ID和活动类型,Reducer则汇总每个用户的互动次数,帮助分析用户参与度。

推荐系统

2.应用场景:基于用户行为数据生成个性化推荐。

实现:Mapper从用户行为日志中提取用户和物品的关系,Reducer汇总同一用户对多个物品的评分,从而生成用户的推荐列表。

Mapper分割数据文件并处理每个数据块,Reducer负责合并结果,以便进行进一步的分析。

认识:MapReduce是一个强大且高效的分布式计算模型,主要用于处理和生成大规模数据集。它的核心优势有可扩展性:通过将计算任务分配到集群中的多台机器上,可以处理PB级别的数据。容错性:即使某个节点失败,系统也能重新调度任务,保证计算过程的完整性。简化编程模型:开发者只需关注业务逻辑,Hadoop会处理数据的分配和调度,让复杂的分布式计算变得简单。

然而,MapReduce也有其局限性,如对实时计算和低延迟任务支持不足,处理小文件效率低等。近年来,许多新技术,已经出现,旨在弥补这些不足,但MapReduce在大数据处理领域仍然占据重要地位。

正确答案:
posted @ 2024-12-25 01:59  cvjj  阅读(17)  评论(0)    收藏  举报