什么是MapReduce?(内含习题)

什么是MapReduce?

MapReduce最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法。

2004年,开源项目Lucene(搜索索引程序库)和Nutch(搜索引擎)的创始人Doug Cutting发现MapReduce正是其所需要的解决大规模Web数据处理的重要技术,因而模仿Google MapReduce,基于Java设计开发了一个称为Hadoop的开源MapReduce并行计算框架和系统。自此,Hadoop成为Apache开源组织下最重要的项目,自其推出后很快得到了全球学术界和工业界的普遍关注,并得到推广和普及应用。尽管MapReduce还有很多局限性,但人们普遍公认,MapReduce是到目前为止最为成功、最广为接受和最易于使用的大数据并行处理技术。

我们可以把MapReduce较为通俗地理解为:

把一堆杂乱无章的数据按照某种特征归纳起来,然后处理并得到最后的结果。Map面对的是杂乱无章的互不相关的数据,它解析每个数据,从中提取出key和value,也就是提取了数据的特征。经过MapReduce的Shuffle阶段之后,在Reduce阶段看到的都是已经归纳好的数据了。


关于MapReduce的一些经典习题:

下列关于MapReduce说法不正确的是__C_。

A. MapReduce是一种计算框架

B.MapReduce来源于google的学术论文

C. MapReduce程序只能用java语言编写

D. MapReduce隐藏了并行计算的细节,方便使用

 

HBase依赖___D___提供强大的计算能力。

A.Zookeeper

B.Chubby

C.RPC

D. MapReduce

 

MapReduce与HBase的关系,哪些描述是正确的? B、C

A 两者不可或缺,MapReduce是HBase可以正常运行的保证

B 两者不是强关联关系,没有MapReduce,HBase可以正常运行

C MapReduce可以直接访问HBase

D 它们之间没有任何关系

 

HBase中的批量加载底层使用()实现。A

A. MapReduce

B. Hive

C. Coprocessor

D. Bloom Filter

 

在高阶数据处理中,往往无法把整个流程写在单个MapReduce作业中,下列关于链接MapReduce作业的说法,不正确的是?()答案:A

A、ChainReducer.addMapper()方法中,一般对键/值对发送设置成值传递,性能好且安全性高 

B、使用ChainReducer时,每个mapper和reducer对象都有一个本地JobConf对象 

C、ChainMapper和ChainReducer类可以用来简化数据预处理和后处理的构成

D、 Job和JobControl类可以管理非线性作业之间的依赖 

 

有关MapReduce的输入输出,说法错误的是  答案:B

(知识点:分片数目在numSplits中限定,分片大小必须大于mapred.min.size个字节,但小于文件系统的块

A. 链接多个MapReduce作业时,序列文件是首选格式

B. FileInputFormat中实现的getSplits()可以把输入数据划分为分片,分片数目和大小任意定义

C. 想完全禁止输出,可以使用NullOutputFormat

D. 每个reduce需将它的输出写入自己的文件中,输出无需分片 

 

下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是 答案:B

(知识点:每个分片不能太小,否则启动与停止各个分片处理所需的开销将占很大一部分执行时间

A. FSDataInputStream扩展了DataInputStream以支持随机读

B. 为实现细粒度并行,输入分片(Input Split)应该越小越好

C. 一台机器可能被指派从输入文件的任意位置开始处理一个分片

D. 输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割

 

MapReduce框架提供了一种序列化键/值对的方法,支持这种序列化的类能够在Map和Reduce过程中充当键或值,以下说法错误的是  答案:C

A. 实现Writable接口的类是值

B. 实现WritableComparable接口的类可以是值或键

C. Hadoop的基本类型Text并不实现WritableComparable接口

D. 键和值的数据类型可以超出Hadoop自身支持的基本类型

 

关于 mapreduce 执行过程,说法错误的是(B )。
A . Reduce 大致分为 copy、sort、reduce 三个阶段
B . 数据从环形缓冲区溢出时会进行分区的操作
C . Reduce默认只进行内存到磁盘 和磁盘到磁盘合并
D . shuffle指的是map输出之后到reduce输入之前

 

Mapreduce 的 input split 就是一个 block  (错)

关于 mapreduce 并行度说法: reduce 阶段并行度由 map 处理的结果数据量决定 ? (错)

 

你可能感兴趣的:(大数据)