Hadoop面试题精选集合带答案

1. 以下哪一项不属于Hadoop可以运行的模式___C___。

A. 单机(本地)模式

B. 伪分布式模式

C. 互联模式

D. 分布式模式

2. Hadoop的作者是下面哪一位__B____。

A. Martin Fowler

B. Doug cutting

C. Kent Beck

D. Grace Hopper

3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。

A. TaskTracker

B. DataNode

C. SecondaryNameNode

D. Jobtracker

4. HDFS 默认 Block Size的大小是___B___。

A.32MB

B.64MB

C.128MB

D.256M

5. 下列哪项通常是集群的最主要瓶颈____C__。

A. CPU

B. 网络

C. 磁盘IO

D. 内存

6. 下列关于MapReduce说法不正确的是_____C_。

A. MapReduce是一种计算框架

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

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

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

8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。

A.一次写入,少次读

B.多次写入,少次读

C.多次写入,多次读

D.一次写入,多次读

9. HBase依靠__A____存储底层数据。

A. HDFS

B. Hadoop

C. Memory

D. MapReduce

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

A. Zookeeper

B. Chubby

C. RPC

D. MapReduce

11. HBase依赖___A___提供消息通信机制

A. Zookeeper

B. Chubby

C. RPC

D. Socket

12. 下面与HDFS类似的框架是___C____?

A. NTFS

B. FAT32

C. GFS

D. EXT3

13. 关于 SecondaryNameNode 下面哪项是正确的___C___。

A. 它是 NameNode 的热备

B. 它对内存没有要求

C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

D. SecondaryNameNode 应与 NameNode 部署到一个节点

14. 大数据的特点不包括下面哪一项___D___。

A. 巨大的数据量

B. 多结构化数据

C. 增长速度快

D. 价值密度高

HBase测试题

1. HBase来源于哪一项? C

A The Google File System

B MapReduce

C BigTable

D Chubby

2. 下面对HBase的描述哪些是正确的? B、C、D

A 不是开源的

B 是面向列的

C 是分布式的

D 是一种NoSQL数据库

3. HBase依靠()存储底层数据 A

A HDFS

B Hadoop

C Memory

D MapReduce

4. HBase依赖()提供消息通信机制 A

A Zookeeper

B Chubby

C RPC

D Socket

5. HBase依赖()提供强大的计算能力 D

A Zookeeper

B Chubby

C RPC

D MapReduce

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

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

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

C MapReduce可以直接访问HBase

D 它们之间没有任何关系

7. 下面哪些选项正确描述了HBase的特性? A、B、C、D

A 高可靠性

B 高性能

C 面向列

D可伸缩

8. 下面与Zookeeper类似的框架是?D

A Protobuf

B Java

C Kafka

D Chubby

9. 下面与HDFS类似的框架是?C

A NTFS

B FAT32

C GFS

D EXT3

10. 下面哪些概念是HBase框架中使用的?A、C

A HDFS

B GridFS

C Zookeeper

D EXT3

第二部分:HBase核心知识点

11. LSM含义是?A

A 日志结构合并树

B 二叉树

C 平衡二叉树

D 基于日志结构的合并树

12. 下面对LSM结构描述正确的是? A、C

A 顺序存储

B 直接写硬盘

C 需要将数据Flush到磁盘

D 是一种搜索平衡树

13. LSM更能保证哪种操作的性能?B

A 读

B 写

C 随机读

D 合并

14. LSM的读操作和写操作是独立的?A

A 是。

B 否。

C LSM并不区分读和写

D LSM中读写是同一种操作

15. LSM结构的数据首先存储在()。 B

A 硬盘上

B 内存中

C 磁盘阵列中

D 闪存中

16 HFile数据格式中的Data字段用于()。A

A 存储实际的KeyValue数据

B 存储数据的起点

C 指定字段的长度

D 存储数据块的起点

17 HFile数据格式中的MetaIndex字段用于()。D

A Meta块的长度

B Meta块的结束点

C Meta块数据内容

D Meta块的起始点

18 HFile数据格式中的Magic字段用于()。A

A 存储随机数,防止数据损坏

B 存储数据的起点

C 存储数据块的起点

D 指定字段的长度

19 HFile数据格式中的KeyValue数据格式,下列选项描述正确的是()。A、D

A 是byte[]数组

B 没有固定的结构

C 数据的大小是定长的

D 有固定的结构

20 HFile数据格式中的KeyValue数据格式中Value部分是()。C

A 拥有复杂结构的字符串

B 字符串

C 二进制数据

D 压缩数据

第三部分:HBase高级应用介绍

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

A MapReduce

B Hive

C Coprocessor

D Bloom Filter

32. HBase性能优化包含下面的哪些选项?A、B、C、D

A 读优化

B 写优化

C 配置优化

D JVM优化

33. Rowkey设计的原则,下列哪些选项的描述是正确的?A、B、C

A 尽量保证越短越好

B 可以使用汉字

C 可以使用字符串

D 本身是无序的

34. HBase构建二级索引的实现方式有哪些? A、B

A MapReduce

B Coprocessor

C Bloom Filter

D Filter

35. 关于HBase二级索引的描述,哪些是正确的?A、B

A 核心是倒排表

B 二级索引概念是对应Rowkey这个“一级”索引

C 二级索引使用平衡二叉树

D 二级索引使用LSM结构

36. 下列关于Bloom Filter的描述正确的是?A、C

A 是一个很长的二进制向量和一系列随机映射函数

B 没有误算率

C 有一定的误算率

D 可以在Bloom Filter中删除元素

第四部分:HBase安装、部署、启动

37. HBase官方版本可以安装在什么操作系统上?A、B、C

A CentOS

B Ubuntu

C RedHat

D Windows

38. HBase虚拟分布式模式需要()个节点?A

A 1

B 2

C 3

D 最少3个

39. HBase分布式模式最好需要()个节点?C

A 1

B 2

C 3

D 最少

关于hadoop的选择题

1、Doug Cutting所创立的项目的名称都受到其家人的启发,以下项目不是由他创立的项目是

A. Hadoop

B. Nutch

C. Lucene

D. Solr

答案:D

2、配置Hadoop时,JAVA_HOME包含在哪一个配置文件中

A. hadoop-default.xml

B. hadoop-env.sh

C. hadoop-site.xml

D. configuration.xsl

答案:B

知识点:hadoop配置

3、Hadoop配置文件中,hadoop-site.xml显示覆盖hadoop-default.xml里的内容。在版本0.20中,hadoop-site.xml被分离成三个XML文件,不包括

A. conf-site.xml

B. mapred-site.xml

C. core-site.xml

D. hdfs-site.xml

答案:A

知识点:hadoop配置

4、HDFS默认的当前工作目录是/user/$USER,fs.default.name的值需要在哪个配置文件内说明

A. mapred-site.xml

B. core-site.xml

C. hdfs-site.xml

D. 以上均不是

答案:B

知识点:hadoop配置

5、关于Hadoop单机模式和伪分布式模式的说法,正确的是

A. 两者都起守护进程,且守护进程运行在一台机器上

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

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

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

答案:D

知识点:hadoop配置

6、下列关于Hadoop API的说法错误的是

A. Hadoop的文件API不是通用的,只用于HDFS文件系统

B. Configuration类的默认实例化方法是以HDFS系统的资源配置为基础的

C. FileStatus对象存储文件和目录的元数据

D. FSDataInputStream是java.io.DataInputStream的子类

答案:A

//HDFS

7、HDFS的NameNode负责管理文件系统的命名空间,将所有的文件和文件夹的元数据保存在一个文件系统树中,这些信息也会在硬盘上保存成以下文件:

A.日志

B.命名空间镜像

C.两者都是

答案:C

知识点:

8、HDFS的namenode保存了一个文件包括哪些数据块,分布在哪些数据节点上,这些信息也存储在硬盘上。

A.正确

B.错误

答案:B

知识点:在系统启动的时候从数据节点收集而成的

9、Secondary namenode就是namenode出现问题时的备用节点

A.正确

B.错误

答案:B

知识点:它和元数据节点负责不同的事情。其主要功能就是周期性将元数据节点的命名空间镜像文件和修改日志合并,以防日志文件过大。合并过后的命名空间镜像文件也在Secondary namenode保存了一份,以防namenode失败的时候,可以恢复。

10、出现在datanode的VERSION文件格式中但不出现在namenode的VERSION文件格式中的是

A. namespaceID

B. storageID

C. storageType

D. layoutVersion

答案:B

知识点:其他三项是公有的。layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号;namespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的;storageType表示此文件夹中保存的是数据节点的类型

11、Client在HDFS上进行文件写入时,namenode根据文件大小和配置情况,返回部分datanode信息,谁负责将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块

A. Client

B. Namenode

C. Datanode

D. Secondary namenode

答案:A

知识点:HDFS文件写入

12、HDFS的是基于流数据模式访问和处理超大文件的需求而开发的,默认的最基本的存储单位是64M,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是

A.一次写入,少次读写

B.多次写入,少次读写

C.一次写入,多次读写

D.多次写入,多次读写

答案:C

知识点:HDFS特性

13、HDFS无法高效存储大量小文件,想让它能处理好小文件,比较可行的改进策略不包括

A. 利用SequenceFile、MapFile、Har等方式归档小文件

B. 多Master设计

C. Block大小适当调小

D. 调大namenode内存或将文件系统元数据存到硬盘里

答案:D

知识点:HDFS特性

14、关于HDFS的文件写入,正确的是

A. 支持多用户对同一文件的写操作

B. 用户可以在文件任意位置进行修改

C. 默认将文件块复制成三份存放

D. 复制的文件块默认都存在同一机架上

答案:C

知识点:在HDFS的一个文件中只有一个写入者,而且写操作只能在文件末尾完成,即只能执行追加操作。默认三份文件块两块在同一机架上,另一份存放在其他机架上。

15、Hadoop fs中的-get和-put命令操作对象是

A. 文件

B. 目录

C. 两者都是

答案:C

知识点:HDFS命令

16、Namenode在启动时自动进入安全模式,在安全模式阶段,说法错误的是

A. 安全模式目的是在系统启动时检查各个DataNode上数据块的有效性

B. 根据策略对数据块进行必要的复制或删除

C. 当数据块最小百分比数满足的最小副本数条件时,会自动退出安全模式

D. 文件系统允许有修改

答案:D

知识点:HDFS安全模式

//MapReduce

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

A. 实现Writable接口的类是值

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

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

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

答案:C

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

A. IdentityMapper<K, V>实现Mapper<K, V, K, V>,将输入直接映射到输出

B. InverseMapper<K, V>实现Mapper<K, V, K, V>,反转键/值对

C. RegexMapper<K>实现Mapper<K, Text, Text, LongWritable>,为每个常规表达式的匹配项生成一个(match, 1)对

D. TokenCountMapper<K>实现Mapper<K, Text, Text, LongWritable>,当输入的值为分词时,生成(taken, 1)对

答案:B

知识点:InverseMapper<K, V>实现Mapper<K, V, V, K>

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

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

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

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

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

答案:B

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

20、针对每行数据内容为”Timestamp Url”的数据文件,在用JobConf对象conf设置conf.setInputFormat(WhichInputFormat.class)来读取这个文件时,WhichInputFormat应该为以下的

A. TextInputFormat

B. KeyValueTextInputFormat

C. SequenceFileInputFormat

D. NLineInputFormat

答案:B

知识点:四项主要的InputFormat类。KeyValueTextInputFormat以每行第一个分隔符为界,分隔符前为key,之后为value,默认制表符为\t

21、有关MapReduce的输入输出,说法错误的是

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

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

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

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

答案:B

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

22、Hadoop Streaming支持脚本语言编写简单MapReduce程序,以下是一个例子:

bin/hadoop jar contrib/streaming/hadoop-0.20-streaming.jar

—input input/filename

—output output

—mapper ‘dosth.py 5’

—file dosth.py

—D mapred.reduce.tasks=1

23、以下说法不正确的是

A. Hadoop Streaming使用Unix中的流与程序交互

B. Hadoop Streaming允许我们使用任何可执行脚本语言处理数据流

C. 采用脚本语言时必须遵从UNIX的标准输入STDIN,并输出到STDOUT

D. Reduce没有设定,上述命令运行会出现问题

答案:D

知识点:没有设定特殊的reducer,默认使用IdentityReducer

24、在高阶数据处理中,往往无法把整个流程写在单个MapReduce作业中,下列关于链接MapReduce作业的说法,不正确的是

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

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

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

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

答案:D

知识点:ChainReducer.addMapper()方法中,值传递安全性高,引用传递性能高

25、下面哪个程序负责 HDFS 数据存储。答案C datanode

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

26. HDfS 中的 block 默认保存几份? 答案A默认3分

a)3 份

b)2 份

c)1 份

d)不确定

27. 下列哪个程序通常与 NameNode 在一个节点启动?答案D

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

28. Hadoop 作者 答案C Doug cutting

a)Martin Fowler

b)Kent Beck

c)Doug cutting

29. HDFS 默认 Block Size 答案:B

a)32MB

b)64MB

c)128MB

30、下列哪项通常是集群的最主要瓶颈:答案:C磁盘

a)CPU

b)网络

c)磁盘IO

d)内存

31. 关于 SecondaryNameNode 哪项是正确的?答案C

a)它是 NameNode 的热备

b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

d)SecondaryNameNode 应与 NameNode 部署到一个节点。

多选题:

1. 下列哪项可以作为集群的管理?答案:ABD

a)Puppet

b)Pdsh

c)Cloudera Manager

d)Zookeeper

2. 配置机架感知的下面哪项正确:答案ABC

a)如果一个机架出问题,不会影响数据读写

b)写入数据的时候会写到不同机架的 DataNode 中

c)MapReduce 会根据机架获取离自己比较近的网络数据

3. Client 端上传文件的时候下列哪项正确?答案B

a)数据经过 NameNode 传递给 DataNode

b)Client 端将文件切分为 Block,依次上传

c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作

4. 下列哪个是 Hadoop 运行的模式:答案ABC

a)单机版

b)伪分布式

c)分布式

5. Cloudera 提供哪几种安装 CDH 的方法?答案:ABCD

a)Cloudera manager

b)Tarball

c)Yum

d)Rpm

判断题:

1. Ganglia 不仅可以进行监控,也可以进行告警。( 正确)

2. Block Size 是不可以修改的。(错误 )

3. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。(错误 )

4. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。(错误 )

5. Cloudera CDH 是需要付费使用的。(错误 )

6. Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。(错误 )

7. Hadoop 支持数据的随机读写。(错 )

8. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(错误)

9. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。(错误 )

10. Slave 节点要存储数据,所以它的磁盘越大越好。( 错误)

11. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。(错误 )

12. Hadoop 默认调度器策略为 FIFO(正确 )

13. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。(错误 )

14.因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。(错误 )

15. 每个 map 槽就是一个线程。(错误 )

16. Mapreduce 的 input split 就是一个 block。(错误 )

17. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。(错误 )

18. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。(错误 )

19. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( 错误)

单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善

0

发表评论

邮箱地址不会被公开。