Hadoop试题解析

单选

1.

下列哪个属性是mapred-site.xml中的配置?( C  )

        A.dfs.replication

        B.fs.fsdefaultFS

        C.mapreduce.framework.name

        D.yarn.resourcemanager.address

A: 设置副本数    hdfs-site.xml 

B:设置namenode节点对应的主机     core-site.xml

C:指定MapReduce所依赖的运行框架为YARN

D:指定ResourceManager对应的主机     yarn-site.xml

2.

关于Hadoop单击模式和伪分布模式的说法正确的是? ( A  )

        A.后者比前者增加的HDFS的输入输出以及可检查内存的使用情况

        B.两者都不与守护进程交互,避免复杂性

        C.单机模式不使用HDFS,但加载守护进程

        D.两者都启动守护进程,且守护进程运行在一台机器上

3.

关于Haoop体系架构说法不正确的是?    (  D ) 

        A.NameNode管理文件系统的命名空间

        B. HDFS集群有两类节点以管理者和工作者模式运行

        C.HDFS上的文件也被分为块大小的多个块文件作为独立的存储单元

        D.NameNode永久保存记录着每个文件中各个块所在的数据节点和位置信息

D: namenode也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息会在系统启动时由数据节点重建

4.

以下关于HDFS中Block的说法正确的是?  (  C ) 

        A.一个磁盘有自己的块大小,一般为512个字节,HDFS中的块大小与本地磁盘保持一致

        B. 为了 容错,一般Block的默认备份为1份,并且会尽量考虑到网络到网络

        C.由于分布式文件系统中使用Block来抽象数据存储,由于文件的分块不需要存储同一台机器上,所以HDFS为文件可以大于每个单独的磁盘大小。

        D.数据文件的各个Block主要存储在namenode上

5.

HDFS文件系统中一个gzip文件大小75MB,客户端设置Block的大小为默认,请问此文件占用几个Block? (   )

  • A. 1
  • B. 3
  • C. 2
  • D. 4

版本不同,默认大小不同。64M、128M都正确。

Apache Hadoop中默认是64M,Cloudera Hadoop版本中默认是128M

6.

HDFS中的block默认保存几份?( C  )

  • A. 1份
  • B. 不确定
  • C. 3份
  • D. 2份

7.

下面选项中哪两个进程是分别负责管理HDFS数据存储和备份元数据信息的?( A )

  • A. NameNode、SecondaryNameNode
  • B. NameNode、Jobtracker
  • C. Datanode,SecondaryNameNode
  • D. NameNode、DataNode

SecondaryNameNode:备份文件

8.

关于HDFS的文件写入,正确的是( C  )

  • A. 用户可以在文件任意位置进行修改
  • B. 复制的文件块默认都存在同一机架上
  • C. 默认将文件块复制成三份存放
  • D. 支持多用户对同一文件的写操作

9.

关于Hadoop FileSystem的说法不正确的是( A )

A、FileSystem中有很多方法,跟File中的方法一致,如exists,delete,mkdir,create等等一些常用的文件操作方法

B、FileStatus中有一系列的方法,可以得到文件的信息。如:getLen()得到文件的长度,以字节的形式

C、globStatus()方法返回于其路径匹配的所有文件的FileStatus队形数据,并按路径排序。

D、FileStatus对象存储文件和目录的元数据

创建目录:mkdir>>mkdirs

10.

下列不是FileSystem类的常见方法的是( D )

  • A. getDefaultPort()
  • B. getScheme()
  • C. getStatus()
  • D. Path()

方法名没有大写

11.

下列描述中不符合Map/Reduce的是( D   )

  • A. Map结束后,Partitioner会将相同Key分到同一个组交给Reduce进程
  • B. Map/Reduce是函数式的设计思想
  • C. Map是将数据映射成Key/Value再交给Reduce
  • D. Reduce先运行,然后运行Map

map:分解

reduce:分组

12.

MapReduce编程模型中以下组件哪个是最后执行的? ( B  )

  • A. Partitioner
  • B. Reducer
  • C. Mapper
  • D. RecordReader

13.

有关MapReduce的输入输出,说法错误的是( B  )

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

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

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

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

getSplits():得到有多少个切片

14.

下列关于MapReduce说法不正确的是(D)

  • A. MapReduce隐藏了并行计算的细节,方便使用
  • B. MapReduce是一种计算框架
  • C. MapReduce来源于google的学术论文
  • D. MapReduce程序只能用java语言编写

Hadoop也可以使用非Java语言来编写,主要使用Streaming API编写,但只适用较小、功能比较简单的MapReduce程序。

15.

关于MapReduce执行过程说法错误的是(   )

  • A. Mapper过程与Reducer过程之间,会有shuffle过程
  • B. 合并、排序、Shuffle是在Mapper输出之后,Reducer输出之前完成的
  • C. MapReduce执行过程分为Mapper过程与Reducer过程
  • D. 正常执行MapReduce任务时,Map函数和reduce函数都会被调用执行

我的答案:C

16.【单选】

下面关于MapReduce的描述中正确的是(   )

  • A. MapReduce程序的ReduceTask可以任意指定
  • B. MapReduce程序的MapTask可以任意指定
  • C. MapReduce程序必须包含Mapper和Reducer
  • D. MapReduce程序的默认数据读取组件是TextInputFormat

我的答案:D

MapReduce程序的默认数据输出组件是TextoutputFormat

MapReducer编程模型中,可以没有Reducer,MapTask是由逻辑切片规则决定,虽然可以通过参数进行调整,但是不能随意设置,reduceTask数量可以随意设置,但是通常都是和业务挂钩,所以也基本做不到随心所欲的设置。MapReduce编程模型中的默认数据读取组件是TextInputFormat和LineRecordReade

17.

关于MapReduce过程各个角色的作用说法不正确的是(   )

A、JobTracker负责接收用户提交的作业,负责启动、跟踪任务执行

B、TaskTracker负责执行任务,负责启动、跟踪任务执行、访问任务状态和日志

C、JobClient负责提交作业 

D、客户端提交一个MR的jar包给JobTracker,再由JobTracker分给TaskTracker

  • A. A
  • B. C
  • C. D
  • D. B

我的答案:C

18.【单选】

MapReduce 是一个分布式计算框架,它经历了两个版本MRv1和MRv2。  MRv2重用了MRv1的编程模型和数据处理引擎,运行时环境则完全重写,改为由yarn提供服务,yarn将TaskTrack分解为ResourceManager、ApplicationMaster。MapReduce是一个分布式计算框架,它的第二个版本记为MRv2,以下描述组成部分错误的是(  B  )

  • A. 数据处理引擎(MapTask和ReduceTastk)
  • B. 运行时环境(JobTrack和TaskTrack)
  • C. 运行时环境(JobTrack和ResourceManager、ApplicationMaster)
  • D. 编程模型(Map和Reduce)

19.【单选】

关于Writable接口的说法错误的是( D )

A、Writable接口是根据 DataInput 和 DataOutput 实现的简单、有效的序列化对象

B、MapReduce的任意key必须实现WritableComparable接口

C、MapReduce的任意Value不必实现Writable接口

D、Hadoop使用自己的序列化格式Writables接口,具有紧凑,快速的特点

  • A. B
  • B. D
  • C. A
  • D. C

MapReduce的任意Value必实现Writable接口  :序列化

20.【单选】

有关MapReduce的输入输出,说法错误的是(  B )

  • A. 每个reduce需将它的输出写入自己的文件中,输出无需分片
  • B. 把输入数据划分为分片,分片数目和大小任意定义
  • C. 链接多个MapReduce作业时,序列文件是首选格式
  • D. 想完全禁止输出,可以使用Null Output Format

=

21.【单选】

关于MapReduce处理类说法错误的是(  B )

A、InputFormat把输入文件切分位为InputSplit,并把InputSplit读到Mapper中进行处理

B、CombineFileInputFormat相对于大量的小文件来说,更合适处理少量的大文件

C、MapFileOutputFormat将key和value写入MapFile中,在写入的时候不必保证记录是按key值顺序写入的

D、KeyValueTextInputFormat适合当输入数据的每一行是两列,并用tab分离的格式的文件 

  • A. A
  • B. C
  • C. B
  • D. D

我的答案:B

22.【单选】

关于MapReduce处理类说法不正确的是(  A )

  • A. TextOutputformat 默认的输出格式,key和value中间值用空格隔开的
  • B. InputSplit原始数据被分割成若干split,每个split作为一个map任务的输入
  • C. FileInputFormat保存作为job输入的所有文件,并实现了对输入文件计算splits的方法
  • D. CombineFileInputFormat相对于大量的小文件来说,更合适处理少量的大文件

我的答案:A

TextOutputformat 默认的输出格式,key和value中间值用Tab隔开的

23.【单选】

默认的MapReduce输入格式是(    )

  • A. KeyValueTextInputFormat 
  • B. TextInputFormat  
  • C. SequenceFileInputFormat
  • D. NLineInputFormat  

我的答案:B

24.【单选】

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

  • A. 键和值的数据类型可以超出Hadoop自身支持的基本类型
  • B. 实现Writable接口的类是值
  • C. Hadoop的基本类型Text并不实现WritableComparable<T>接口  
  • D. 实现WritableComparable<T>接口的类可以是值或键

Hadoop的基本类型Text实现WritableComparable<T>接口  

25.【单选】

为销售报表展示开发一个MapReduce作业,Mapper输入数据的Key是年份(IntWritable), Value表示商品标识(Text)。下列哪一项决定该Mapper的数据类型?(    )

A、JobConf.setMapInputKeyClass与JobConf.setMapInputValuesClass

B、HADOOP_MAP_DA TA TYPES环境变量

C、随作业一起提交的mapper-specification.xml文件

D、InputFormat格式类

  • A. B
  • B. C
  • C. A
  • D. D

我的答案:D

26.【单选】

关于MapReduce处理类说法错误的是(   )

A、FileInputFormat只划分比HDFS block大的文件

B、TextOutputformat 默认的输出格式,key和value中间值用空格隔开的

C、InputSplit原始数据被分割成若干split,每个split作为一个map任务的输入

D、KeyValueTextInputFormat适合当输入数据的每一行是两列,并用tab分离的格式的文件 

  • A. A
  • B. B
  • C. C
  • D. D

我的答案:B

27.【单选】

关于MapReduce处理类说法不正确的是(   )

A、FileInputFormat保存作为job输入的所有文件,并实现了对输入文件计算splits的方法

B、InputFormat把输入文件切分位为InputSplit,并把InputSplit读到Mapper中进行处理

C、InputSplit原始数据被分割成若干split,每个split作为一个map任务的输入

D、FileInputFormat只划分比HDFS block小的文件

  • A. C
  • B. A
  • C. B
  • D. D

我的答案:D

FileInputFormat只划分比HDFS block大的文件

28.【单选】

以下四个Hadoop预定义的Mapper实现类的描述错误的是(  )

  • A. TokenCountMapper实现Mapper,当输入的值为分词时,生成(taken, 1)对
  • B. InverseMapper实现Mapper,反转键/值对
  • C. RegexMapper实现Mapper,为每个常规表达式的匹配项生成一个(match, 1)对
  • D. IdentityMapper实现Mapper,将输入直接映射到输出

我的答案:B

29.【单选】

以下关于Partititoner编程的说法错误的是(    )

A、 Partitioner<k,v>是partitioner的基类,如果需要定制partitioner也需要继承该类。

B、 Partritioner的作用是对Reduce产生的结果进行分片。

C、 Partitioner组件是负责给mapTask节点输出的数据进行分发。

D、 Partitioner用来控制Map输出的中间结果键值对的划分,分区总数与作业的Reduce任务的数量是一样的。

  • A. D
  • B. A
  • C. C
  • D. B

我的答案:A

30.【单选】

关于Partitioner的说法错误的是(   )

  • A. mapreduce中默认的分区是BinaryPartitioner类
  • B. 由Partitioner来决定每条记录应该送往哪个reducer节点
  • C. Partition是在map阶段完成后执行的
  • D. 自定义分区的数量需要和reduce task的数量保持一致

我的答案:A

mapreduce中默认的分区是HashPartitioner类

31.【单选】

关于Partitioner的说法不正确的是(   )

A、Partitioner是partitioner的基类, 如果需要定制partitioner也需要继承该类。

B、Partitioner的作用是对Mapper产生的中间结果进行分片

C、Parttitioner间接影响Reducer阶段的复杂均衡

D、Partitioner只提供了一个方法getPartition(Text key,Text value,int numPartitions)

  • A. C
  • B. B
  • C. D
  • D. A

我的答案:A

32.【单选】

关于MapReduce提供的4种Partitioner,不正确的是(   )

A、HashPartitioner是MapReduce的默认Partitioner

B、BinaryPartitioner继承于Partitioner<BinaryComparable,V>,是Partitioner的字节码子类

C、KeyFieldBasedPartitioner是基于hash的Partitioner。与BinaryPartitioner不同的是,它提供了多个区间用于计算hash

D、TotalOrderPartitioner类可以实现输出额全排序。这个类也是基于hash的

  • A. C
  • B. D
  • C. B
  • D. A

我的答案:B

TotalOrderPartitioner类可以实现输出额全排序。这个类不是基于hash的

33.【单选】

关于mapreduce框架中一个作业的reduce任务的数目,下列说法正确的是(  )

A、由自定义的Partitioner来确定

B、是分块的总数目一半

C、可以由用户来自定义,通过JobConf.setNumReducetTask(int)来设定一个作业中reduce的任务数目 

D、由MapReduce随机确定其数目 

  • A. A
  • B. B
  • C. D
  • D. C

我的答案:D

34.【单选】

以下哪个组件可以指定对key进行Reduce分发的策略?(   )

  • A. FileInputFormat
  • B. Partitioner
  • C. RecordReader
  • D. Combiner

我的答案:B

35.【单选】

下列描述中不符合Map/Reduce的是 (   )

  • A. Map结束后,Partitioner会将相同Key分到同一个组交给Reduce进程
  • B. Reduce先运行,然后运行Map 
  • C. Map是将数据映射成Key/Value再交给Reduce  
  • D. Map/Reduce是函数式的设计思想

我的答案:B

36.【单选】

关于map阶段,下面说法错误的是(  )

  • A. 数据划分组由partitioner组件完成
  • B. 输入数据由mapper组件处理
  • C. 输入数据格式由inputformat解析
  • D. shuffle阶段是map阶段的一个子阶段

我的答案:D

shuffle阶段是map阶段的下一个阶段

37.【单选】

下面说法不正确的是(   )

  • A. Partitioner负责控制Map输出结果key的分割
  • B. Reduce的数目不可以是0
  • C. OutputCollector收集Mapper或Reducer输出数据
  • D. Reporter用于MapReduce应用程序报告进度

我的答案:B

38.【单选】

关于Partitioner组件,下面说法正确的是(   )

  • A. partition决定了map task输出的每条数据交给哪个reduce task处理
  • B. partitioner主要作用是对数据等量划分,以便能被并行处理
  • C. partitioner可有可无
  • D. partition不能由用户实现

我的答案:A

39.【单选】

与传统的分布程序设计相比,MapReduce封装了()等细节,还提供了一个简单而强大的接口。

a、并行处理

b、容错处理

c、数据分布

d、负载均衡

以上正确的有?

  • A. 两个
  • B. 三个
  • C. 四个
  • D. 一个

我的答案:C

40.【单选】

MapReduce是一种编程模型,用户只需通过编写()函数来实现自己的计算逻辑。 

  • A. Partition
  • B. 逻辑
  • C. Map、Reduce
  • D. SQL

我的答案:C

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·惊鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值