1.在高阶数据处理中,往往无法把整个流程写在单个MapReduce作业中,下列关于链接MapReduce作业的说法,不正确的是?()答案:A
A.
ChainReducer.addMapper()方法中,一般对键/值对发送设置成值传递,性能好且安全性高
B.使用ChainReducer时,每个mapper和reducer对象都有一个本地JobConf对象
C.ChainMapper和ChainReducer类可以用来简化数据预处理和后处理的构成
D.Job和JobControl类可以管理非线性作业之间的依赖
3.下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是 答案:B
(知识点:每个分片不能太小,否则启动与停止各个分片处理所需的开销将占很大一部分执行时间
A.FSDataInputStream扩展了DataInputStream以支持随机读
B.为实现细粒度并行,输入分片(Input Split)应该越小越好
C.一台机器可能被指派从输入文件的任意位置开始处理一个分片
D.输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割
4.MapReduce框架提供了一种序列化键/值对的方法,支持这种序列化的类能够在Map和Reduce过程中充当键或值,以下说法错误的是 答案:C
A.实现Writable接口的类是值
B.实现WritableComparable接口的类可以是值或键
C.Hadoop的基本类型Text并不实现WritableComparable接口
D.键和值的数据类型可以超出Hadoop自身支持的基本类型
5.关于 mapreduce 执行过程,说法错误的是(B )
A.Reduce 大致分为 copy、sort、reduce 三个阶段
B.数据从环形缓冲区溢出时会进行分区的操作
C.Reduce默认只进行内存到磁盘和磁盘到磁盘合并
D.shuffle指的是map输出之后到reduce输入之前
9.MapReduce编程模型中以下组件哪个是最后执行的?
A、Mapper
B、Partitioner
C、Reducer
D、RecordReader
答案:C
解答:以上这四个MapReduce编程模型中的执行顺序是:recordReader --> mapper --> partitioner --> reducer
10.在MapReduce中,哪个组件是用户不指定也不会有默认的?
A、Combiner
B、OutputFormat
C、Partitioner
D、InputFormat
答案:A
解答:在MapReduce编程模型中,Combiner是可有可无的组件,它的作用就是用来给mapTask的结果数据做局部合并以减少reduceTask接收的数据量,以减少网络数据传输。OutputFormat的默认组件是TextOutputFormat,InputFormat的默认组件是TextInputFormat,Partitioner的默认实现是HashPartitioner
11.下列关于使用MapReduce编程模型实现SQL中的join操作错误的是?
A、ReduceJoin可以实现内链接,也能实现各种外连接
B、ReduceJoin的join操作是在MapReduce程序中的reducer阶段完成的
C、MapJoin也适合各种join场景,也能实现内连接和各种外链接
D、MapJoin不会产生数据倾斜
答案:C
解答:Ma