Hadoop(MapReducer)面试题

一、单选题

1、Shuffle中Partitioner 分区发生在哪个过程( A )

A. 溢写过程

B. 本地Merge

C. reduce函数阶段

D. map函数阶段

2、在整个maprduce运行阶段,数据是以( A )形式存在的

A. key/value

B. LongWritable

C. Text

D. IntWritable

3、下列哪个方法提交job任务的入口方法 ( B )

A. JoB.addCacheFile()

B. JoB.waitForCompletion()

C. JoB.setMapperClass()

D. JoB.setJarByClass()

二、多选题

1、下列哪些是对reduceTask阶段任务正确理解(ABC )


A. 对多个mapTask任务输出key,value,按照不同的分区通过网络copy到不同的reduceTask节点处理。

B. 对多个mapTask任务的输出进行合并、排序。再reduce函数中实现自己的逻辑,
对输入的key、value处理,转换成新的key、value输出。

C. outputformat把reducer输出的key,value保存到文件中。

D. reduceTask阶段不会根据key进行分组和排序

2、执行一个job, 如果这个job的输出路径已经存在,那么程序会 ( CD )

A. 覆盖这个输出路径

B. 抛出警告,但是能够继续执行

C. 抛出一个异常,然后退出程序的执行

D. 会抛出文件路径已存在的异常

3、对mapreduce数据类型理解正确(AB )


A. Java中的String类型在Mapreduce中对应的是Text类型

B. hadoop的序列化,对象可以被序列化成二进制字节序列进行网络传输和存储

C. Mapreduce中的数据类型和java一模一样

D. Mapreduce中的数据类型完全和java中基本类型是通用的

4、下列说法正确的是(ABC )

A. mapreduce总体上分为maptask阶段和reducetask阶段

B. shfflue阶段由maptask的map方法之后的部分和reduce方法之前前部分组成

C. shfflue阶段可能会造成数据倾斜

D. shfflue阶段不会对数据进行排序和分区

5、下列说法正确的是 ( BCD )

A. inputformat阶段会对文件进行切片,切片过程是物理上的切片,切切实实的对数据进行了分割

B. mr中默认使用的是TextInputFormat对文件进行读取,一次读取一行,偏移量作为key值,
行内容作为value值对应的数据类型为LongWritable和Text

C. mapreduce运行过程中切片的数量决定了maptask的数量,maptask任务并行执行互不影响。

D. inputformat会将文件转换为(key, value)值得形式输出到mapper类的map()方法中 

6、下列描述正确的是(ABC )

A. 默认的reduceTask数量为1意味着所有的mapTask处理后的数据都会交给这个reduceTask进行数据的汇总,
最终输出一个文件

B. 当分区数量大于reduceTask数量时,程序运行出错

C. 自定义分区首先需要定义一个类,继承自Partitioner,实现getPartition()方法根据具体需求返回
对于的分区号。

D. ReduceTask的数量越多越好,这样处理数据执行的效率越高

三、判断题

1、如果reduceTask存在多个,那么单个ReduceTask负责从不同MapTask上拷贝同一分区数据最终对数据
进行归并排序和分组,将数据一组一组的传递给Reducer类中的reduce方法中进行处理()
2、MapReduce是一个分布式的运算程序编程框架,适合处理大量的离线数据,有良好的扩展性和高容错性( 对 )
3、在整个mapreduce阶段共实现了2次排序(错)
4、在整个Shufflue过程中环形缓冲区得大小默认为100M,存储量达到百分之80则完成溢写,将内存中得数据写入
到磁盘中(对 )
5、 使用hadoop-daemon.sh start/stop resourcemanager 命令启动和停止resourcemanager ( 对  )

四、简答题

1、简单描述Shuffle过程环形缓冲区的作用(shuffle流程概述)?

[答案]key,value从map()方法输出后,被outputcollector收集通过HashPartitioner类的
getpartitioner(

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