1. 在使用 MapReduce 程序 WordCount 进行词频统计时,对于文本行'hello hadoop hello world',经过 WorldCount 程序的 Map 函数处理后直接输出的中间结果,应该是下面那种形式( )。 A. <'hello',1>、<'hello',1>、<'hadoop',1>和<'world',1> B. <'hello',1,1>、<'hadoop',1>和<'world',1> C. <'hello',<1,1>>、<'hadoop',1>和<'world',1> D. <'hello',2>、<'hadoop',1>和<'world',1>

正确答案:D.

Map 函数将每个单词作为键,将其出现次数作为值输出。由于文本行中 'hello' 出现了两次,因此 Map 函数会输出 <'hello',2>。

  1. 关于 Hadoop MapReduce 的叙述错误的是( )。 A. MapReduce 采用'分而治之的思想' B. MapReduce 的输入和输出都是键值对的形式 C. MapReduce 将计算过程划分为 Map 任务和 Reduce 任务 D. MapReduce 的设计理念是'数据向计算靠拢'

正确答案:C.

实际上,MapReduce 将计算过程划分为 Map 阶段、Shuffle 阶段和 Reduce 阶段。

  1. Hadoop MapReduce 计算的流程是( )。 A. Map 任务——Shuffle——Reduce 任务 B. Map 任务——Reduce 任务——Shuffle C. Reduce 任务——Map 任务——Shuffle D. Shuffle——Map 任务——Reduce 任务

正确答案:A.

首先,输入数据被分割成多个数据块,并由多个 Map 任务并行处理;然后,Shuffle 阶段将 Map 任务的输出按照键进行排序和分组;最后,Reduce 任务对分组后的数据进行计算。

  1. 编写 MapReduce 程序时,下列叙述错误的是( )。 A. reduce 函数所在的类必须继承自 Reduce 类 B. Map 函数的输出就是 reduce 函数的输入 C. reduce 函数的输出默认是有序的 D. 启动 MapReduce 进行分布式并行计算的方法是 start()

正确答案:D.

实际上,启动 MapReduce 进行分布式并行计算的方法是提交作业到 Hadoop 集群,由集群管理器负责调度和执行。

  1. 当前大数据技术的基础是由( )首先提出的。 A. 微软 B. 百度 C. 谷歌 D. 阿里巴巴

正确答案:C.

Google 在 2004 年提出了 MapReduce 和 GFS(Google 文件系统)两篇论文,奠定了大数据技术的基础。

2、简答题

  1. 描述 mapReduce 中 combiner 的作用是什么,一般使用情景,哪些情况不需要,及和 reduce 的区别

MapReduce 中的 Combiner 是在 Map 任务输出结果传递给 Reduce 任务之前,在 Map 任务本地进行合并操作的函数。其主要作用是减少网络传输的数据量和降低 Reduce 任务的负载。Combiner 适用于那些可以进行局部合并的操作,如词频统计中的局部合并相同单词的计数。

Combiner 的使用情景一般是在 Reduce 函数的结果与 Map 函数的输出具有相同的键值对格式,并且 Reduce 函数的操作是可交换和可结合的情况下。常见的使用情景包括词频统计、求和等。

有些情况下并不需要使用 Combiner,例如在 Map 函数输出的结果已经很小并且 Reduce 任务的数量也很少的情况下,使用 Combiner 可能会增加计算的复杂性而无法带来明显的性能提升。

Combiner 与 Reduce 函数的区别在于 Combiner 只在 Map 任务本地进行合并操作,而 Reduce 函数在全局范围内对 Map 任务输出的结果进行合并。Combiner 主要用于减少网络传输和减轻 Reduce 任务的负载,而 Reduce 函数则是对所有 Map 任务输出的结果进行最终的全局合并和计算。

MapReduce WordCount 词频统计及 Hadoop MapReduce 知识点解析

原文地址: https://www.cveoy.top/t/topic/o9Ii 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录