大数据技术Hadoop面试题(二)
17.ClouderaCDH是需要付费使用的。()
18.Hadoop是Java开发的,所以MapReduce只支持Java语言编写。()
19.Hadoop支持数据的随机读写。()
20.NameNode负责管理metadata,client端每次读写请求,它都会从磁盘中读取或则会写入metadata信息并反馈client端。()
21.NameNode本地磁盘保存了Block的位置信息。()
22.DataNode通过长连接与NameNode保持通信。()
23.Hadoop自身具有严格的权限管理和安全措施保障集群正常运行。()
24.Slave节点要存储数据,所以它的磁盘越大越好。()
25.hadoopdfsadmin?report命令用于检测HDFS损坏块。()
26.Hadoop默认调度器策略为FIFO()
27.集群内每个节点都应该配RAID,这样避免单磁盘损坏,影响整个节点运行。()
28.因为HDFS有多个副本,所以NameNode是不存在单点问题的。()
29.每个map槽就是一个线程。()
30.MaPduce的inputsplit就是一个block。()
31.NameNode的WebUI端口是50030,它通过jetty启动的Web服务。()
32.Hadoop环境变量中的HADOOP_HEAPSIZE用于设置所有Hadoop守护线程的内存。它默认是200GB。()
33.DataNode首次加入cluster的时候,如果log中报告不兼容文件版本,那需要NameNode执行“Hadoopnamenode-format”操作格式化磁盘。()
别走开,答案在后面哦!
1.下面哪个程序负责HDFS数据存储。答案Cdatanode
a)NameNode
b)Jobtracker
c)Datanode
d)secondaryNameNode
e)tasktracker
2.HDfS中的block默认保存几份?答案A默认3分
a)3份
b)2份
c)1份
d)不确定
3.下列哪个程序通常与NameNode在一个节点启动?答案D
a)SecondaryNameNode
b)DataNode
c)TaskTracker
d)Jobtracker
此题分析:
hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondaryNameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。
JobTracker和TaskTracker
JobTracker对应于NameNode
TaskTracker对应于DataNode
DataNode和NameNode是针对数据存放来而言的
JobTracker和TaskTracker是对于MapReduce执行而言的
maPduce中几个主要概念,maPduce整体上可以分为这么几条执行线索:obclient,JobTracker与TaskTracker。
1、JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。
2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。
3、TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上。
4.Hadoop作者答案CDougcutting
a)MartinFowler
b)KentBeck
c)Dougcutting
5.HDFS默认BlockSize答案:B
a)32MB
b)64MB
c)128MB
(因为版本更换较快,这里答案只供参考)
6.下列哪项通常是集群的最主要瓶颈:答案:C磁盘
a)CPU
b)网络
c)磁盘IO
d)内存
该题解析:
首先集群的目的是为了节省成本,用廉价的pc机,取代小型机及大型机。小型机和大型机有什么特点?
1.cpu处理能力强
2.内存够大
所以集群的瓶颈不可能是a和d
3.网络是一种稀缺资源,但是并不是瓶颈。
4.由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。
7.关于SecondaryNameNode哪项是正确的?答案C
a)它是NameNode的热备
b)它对内存没有要求
c)它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间
d)SecondaryNameNode应与NameNode部署到一个节点。
多选题:
8.下列哪项可以作为集群的管理?答案:ABD
a)Puppet
b)Pdsh
c)ClouderaManager
d)Zookeeper
9.配置机架感知的下面哪项正确:答案ABC
a)如果一个机架出问题,不会影响数据读写
b)写入数据的时候会写到不同机架的DataNode中
c)MapReduce会根据机架获取离自己比较近的网络数据
10.Client端上传文件的时候下列哪项正确?答案B
a)数据经过NameNode传递给DataNode
b)Client端将文件切分为Block,依次上传
c)Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作
该题分析:
Client向NameNode发起文件写入的请求。
NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
11.下列哪个是Hadoop运行的模式:答案ABC
a)单机版
b)伪分布式
c)分布式
12.Cloudera提供哪几种安装CDH的方法?答案:ABCD
a)Clouderamanager
b)Tarball
c)Yum
d)Rpm
判断题:
13.Ganglia不仅可以进行监控,也可以进行告警。(正确)
分析:此题的目的是考Ganglia的了解。严格意义上来讲是正确。ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。但是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。但是更擅长做警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。
14.BlockSize是不可以修改的。(错误)