首页 > 海文新闻 > 常见的hadoop的测试题及答案解析

常见的hadoop的测试题及答案解析

2017年09月25日11:21:48来源:海文国际         89
分享到:

这是一篇hadoop的测试题及答案解析,题目种类挺多,那么今天昆明大数据培训老师就简单的分享一些,希望对你有所帮助。

常见的hadoop的测试题及答案解析

1单选题

1.1下面哪个程序负责HDFS数据存储。

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

答案Cdatanode

1.2HDfS中的block默认保存几份?

a)3份

b)2份

c)1份

d)不确定

答案A默认3份

1.3下列哪个程序通常与NameNode在一个节点启动?

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

答案D,此题分析:

hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary,NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。

JobTracker和TaskTracker,JobTracker对应于NameNode,TaskTracker对应于DataNode,DataNode和NameNode是针对数据存放来而言的,JobTracker和TaskTracker是对于MapReduce执行而言的,mapreduce中几个主要概念,mapreduce整体上可以分为这么几条执行线索:obclient,JobTracker与TaskTracker。

JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。

JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。

TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上。

1.4Hadoop作者

a)MartinFowler

b)KentBeck

c)Dougcutting

答案CDougcutting

1.5HDFS默认BlockSize

a)32MB

b)64MB

c)128MB

答案:B

(因为版本更换较快,这里答案只供参考)

1.6下列哪项通常是集群的最主要瓶颈:

a)CPU

b)网络

c)磁盘IO

d)内存

答案:C磁盘

该题解析:

首先集群的目的是为了节省成本,用廉价的pc机,取代小型机及大型机。小型机和大型机有什么特点?

cpu处理能力强

内存够大。所以集群的瓶颈不可能是a和d

网络是一种稀缺资源,但是并不是瓶颈。

由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。

1.7关于SecondaryNameNode哪项是正确的?

a)它是NameNode的热备

b)它对内存没有要求

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

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

答案C

2多选题

2.1下列哪项可以作为集群的管理?

a)Puppet

b)Pdsh

c)ClouderaManager

d)Zookeeper

答案:ABD

2.2配置机架感知的下面哪项正确:

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

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

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

答案ABC

2.3Client端上传文件的时候下列哪项正确?

a)数据经过NameNode传递给DataNode

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

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

答案B,该题分析:

lient向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的

信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

2.4下列哪个是Hadoop运行的模式:

a)单机版

b)伪分布式

c)分布式

答案ABC

2.5Cloudera提供哪几种安装CDH的方法?

a)Clouderamanager

b)Tarball

c)Yum

d)Rpm

答案:ABCD

3判断题

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

分析:此题的目的是考Ganglia的了解。严格意义上来讲是正确。ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。

但是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。但是更擅长做警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。

3.2BlockSize是不可以修改的。(错误)

分析:它是可以被修改的Hadoop的基础配置文件是hadoop-default.xml,默认建立一个Job的时候会建立Job的Config,Config首先读入hadoop-default.xml的配置,然后再读入hadoop-site.xml的配置(这个文件初始的时候配置为),hadoop-site.xml中主要配置需要覆盖的hadoop-default.xml的系统级配置。

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

分析:Nagios是集群监控工具,而且是云计算三大利器之一

3.4如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作。

(错误)

分析:SecondaryNameNode是帮助恢复,而不是替代,如何恢复,可以查看

3.5ClouderaCDH是需要付费使用的。(错误)

分析:第一套付费产品是ClouderaEnterpris,ClouderaEnterprise在美国加州举行的Hadoop大会(HadoopSummit)上公开,以若干私有管理、监控、运作工具加强Hadoop的功能。收费采取合约订购方式,价格随用的Hadoop叢集大小变动。

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

分析:rhadoop是用R语言开发的,MapReduce是一个框架,可以理解是一种思想,可以使用其他语言开发。

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

分析:lucene是支持随机读写的,而hdfs只支持随机读。但是HBase可以来补救。HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提高高效的数据结构的序列化、存储和检索。

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

此题分析:

NameNode不需要从磁盘读取metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次namenode启动的时候才会读取。

1)文件写入

Client向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

2)文件读取

Client向NameNode发起文件读取的请求。

3.9NameNode本地磁盘保存了Block的位置信息。(个人认为正确,欢迎提出其它意见)

分析:DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。NameNode返回文件存储的DataNode的信息。

Client读取文件信息。

3.10DataNode通过长连接与NameNode保持通信。(有分歧)

这个有分歧:具体正在找这方面的有利资料。下面提供资料可参考。

首先明确一下概念:

(1).长连接

Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。

这种方式下由于通讯连接一直存在,此种方式常用于点对点通讯。

(2).短连接

Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。

此种方式常用于一点对多点通讯,比如多个Client连接一个Server.