Hadoop 面试题,看看书找答案,看看你能答对多少(2)
1. 下面哪一个程序负责 HDFS 数据存储。
a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker
答案C datanode
2. HDfS 中的 block 默认保存几份?
a)3 份 b)2 份c)1 份d)不肯定
答案A默认3分
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总体上能够分为这么几条执行线索:
jobclient,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上
4. Hadoop 做者
a)Martin Fowler b)Kent Beck c)Doug cutting
答案C Doug cutting
5. HDFS 默认 Block Size
a)32MB b)64MB c)128MB
答案:B
6. 下列哪项一般是集群的最主要瓶颈
a)CPU b)网络 c)磁盘IO d)内存
答案:C磁盘
首先集群的目的是为了节省成本,用廉价的pc机,取代小型机及大型机。小型机和大型机有什么特色?
1.cpu处理能力强
2.内存够大
因此集群的瓶颈不多是a和d
3.若是是互联网有瓶颈,可让集群搭建内网。每次写入数据都要经过网络(集群是内网),而后还要写入3份数据,因此IO就会打折扣。
一样能够参考下面帖子的实际案例
集群瓶颈为何磁盘io
7. 关于 SecondaryNameNode 哪项是正确的?
a)它是 NameNode 的热备 b)它对内存没有要求
c)它的目的是帮助 NameNode 合并编辑日志,减小 NameNode 启动时间
d)SecondaryNameNode 应与 NameNode 部署到一个节点
答案C。
D答案能够参考第三题
多选题:
8. 下列哪项能够做为集群的管理?
a)Puppet b)Pdsh c)Cloudera Manager d)Zookeeper
答案ABD
具体可查看
什么是Zookeeper,Zookeeper的做用是什么,在Hadoop及hbase中具体做用是什么
9. 配置机架感知的下面哪项正确
a)若是一个机架出问题,不会影响数据读写
b)写入数据的时候会写到不一样机架的 DataNode 中
c)MapReduce 会根据机架获取离本身比较近的网络数据
答案ABC
具体能够参考
hadoop机架感知--增强集群稳固性,该如何配置hadoop机架感知
10. Client 端上传文件的时候下列哪项正确
a)数据通过 NameNode 传递给 DataNode
b)Client 端将文件切分为 Block,依次上传
c)Client 只上传数据到一台 DataNode,而后由 NameNode 负责 Block 复制工做
答案B
分析:
Client向NameNode发起文件写入的请求。
NameNode根据文件大小和文件块配置状况,返回给Client它所管理部分DataNode的信息。
Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每个DataNode块中。
具体查看
HDFS体系结构简介及优缺点
11. 下列哪一个是 Hadoop 运行的模式
a)单机版 b)伪分布式 c)分布式
答案ABC
单机版,伪分布式只是学习用的。
12. Cloudera 提供哪几种安装 CDH 的方法
a)Cloudera manager b)Tarball c)Yum d)Rpm
答案:ABCD具体能够参考
Hadoop CDH四种安装方式总结及实例指导
判断题:
13. Ganglia 不只能够进行监控,也能够进行告警。( 正确)
分析:
此题的目的是考Ganglia的了解。严格意义上来说是正确。
ganglia做为一款最经常使用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。可是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。可是更擅长作警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。经过将Ganglia和Nagios组合起来,把Ganglia采集的数据做为Nagios的数据源,而后利用Nagios来发送预警通知,能够完美的实现一整套监控管理的系统。
具体能够查看
完美集群监控组合ganglia和nagios
14. Block Size 是不能够修改的。(错误 )
它是能够被修改的
Hadoop的基础配置文件是hadoop-default.xml,默认创建一个Job的时候会创建Job的Config,Config首先读入hadoop-default.xml的配置,而后再读入hadoop-site.xml的配置(这个文件初始的时候配置为空),hadoop-site.xml中主要配置须要覆盖的hadoop-default.xml的系统级配置。具体配置能够参考下html
15. Nagios 不能够监控 Hadoop 集群,由于它不提供 Hadoop 支持。(错误 )
分析:
Nagios是集群监控工具,并且是云计算三大利器之一
16. 若是 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工做。(错误 )
分析:
SecondaryNameNode是帮助恢复,而不是替代,如何恢复,能够查看
hadoop 根据SecondaryNameNode恢复Namenode
17. Cloudera CDH 是须要付费使用的。(错误 )
分析:
第一套付费产品是Cloudera Enterpris,Cloudera Enterprise在美国加州举行的 Hadoop 大会 (Hadoop Summit) 上公开,以若干私有管理、监控、运做工具增强 Hadoop 的功能。收费采起合约订购方式,价格随用的 Hadoop 叢集大小变更。
18. Hadoop 是 Java 开发的,因此 MapReduce 只支持 Java 语言编写。(错误 )
分析:
rhadoop是用R语言开发的,MapReduce是一个框架,能够理解是一种思想,可使用其余语言开发。
具体能够查看
Hadoop简介(1):什么是Map/Reduce
19. Hadoop 支持数据的随机读写。(错 )
分析:
lucene是支持随机读写的,而hdfs只支持随机读。可是HBase能够来补救。
HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各类可伸缩性问题:表能够很“高”,有数十亿个数据行;也能够很“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提升高效的数据结构的序列化、存储和检索。
20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(我的认为正确,欢迎提出其它意见 )分析:
1)文件写入
Client向NameNode发起文件写入的请求。
NameNode根据文件大小和文件块配置状况,返回给Client它所管理部分DataNode的信息。
Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每个DataNode块中。
2)文件读取
Client向NameNode发起文件读取的请求。
NameNode返回文件存储的DataNode的信息。
Client读取文件信息。
具体查看
hadoop中NameNode、DataNode和Client三者之间协做关系
21. NameNode 本地磁盘保存了 Block 的位置信息。( 我的认为正确,欢迎提出其它意见)
分析:
DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将全部存在的Block信息发送给NameNode。
具体一样查看
hadoop中NameNode、DataNode和Client三者之间协做关系
22. DataNode 经过长链接与 NameNode 保持通讯。(错误 )
首先明确一下概念:
(1).长链接
Client方与Server方先创建通信链接,链接创建后不断开,
而后再进行报文发送和接收。这种方式下因为通信链接一直
存在,此种方式经常使用于点对点通信。
(2).短链接
Client方与Server每进行一次报文收发交易时才进行通信连
接,交易完毕后当即断开链接。此种方式经常使用于一点对多点
通信,好比多个Client链接一个Server.
23. Hadoop 自身具备严格的权限管理和安全措施保障集群正常运行。(错误 )
hadoop只能阻止好人犯错,可是不能阻止坏人干坏事
具体可查看
hadoop安全性需不断增强
24. Slave 节点要存储数据,因此它的磁盘越大越好。( 错误)
分析:
一旦Slave节点宕机,数据恢复是一个难题
25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。(错误 )
分析:
hadoop dfsadmin -report
用这个命令能够快速定位出哪些节点down掉了,HDFS的容量以及使用了多少,以及每一个节点的硬盘使用状况。
固然NameNode有个http页面也能够查询,可是这个命令的输出更适合咱们的脚本监控dfs的使用情况node
26. Hadoop 默认调度器策略为 FIFO(正确 )
具体参考
Hadoop集群三种做业调度算法介绍
27. 集群内每一个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。(错误 )
分析:
首先明白什么是RAID,能够参考百科磁盘阵列。
这句话错误的地方在于太绝对,具体状况具体分析。题目不是重点,知识才是最重要的。
由于hadoop自己就具备冗余能力,因此若是不是很严格不须要都配备RAID。具体参考第二题。
28. 由于 HDFS 有多个副本,因此 NameNode 是不存在单点问题的。(错误 )
分析:
NameNode存在单点问题。了解详细信息,能够参考
Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
29. 每一个 map 槽就是一个线程。(错误 )
分析:首先咱们知道什么是map 槽,map 槽->map slot
map slot 只是一个逻辑值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是对应着一个线程或者进程
具体见:
hadoop中槽-slot是线程仍是进程讨论
30. Mapreduce 的 input split 就是一个 block。(错误 )
InputFormat的数据划分、Split调度、数据读取三个问题的浅析
31. NameNode 的 Web UI 端口是 50030,它经过 jetty 启动的 Web 服务。(错误 )
分析:
根据下面,很显然JOBTRACKER的 Web UI 端口是 50030
端口说明:
默认端口 设置位置
9000 namenode
8020 namenode
8021 JT RPC
50030 mapred.job.tracker.http.address JobTracker administrative web GUI
50070 dfs.http.address NameNode administrative web GUI
50010 dfs.datanode.address DataNode control port
50020 dfs.datanode.ipc.address DataNode IPC port, used for block transfer
50060 mapred.task.tracker.http.address Per TaskTracker web interface
50075 dfs.datanode.http.address Per DataNode web interface
50090 dfs.secondary.http.address Per secondary NameNode web interface
设置位置 描述信息
namenode 交互端口
namenode RPC交互端口
JT RPC 交互端口
mapred.job.tracker.http.address JobTracker administrative web GUI JOBTRACKER的HTTP服务器和端口
dfs.http.address NameNode administrative web GUI NAMENODE的HTTP服务器和端口
dfs.datanode.address DataNode control port DATANODE控制端口,主要用于DATANODE初始化时向NAMENODE提出注册和应答请求
dfs.datanode.ipc.address DataNode IPC port, used for block transfer DATANODE的RPC服务器地址和端口
mapred.task.tracker.http.address Per TaskTracker web interface TASKTRACKER的HTTP服务器和端口
dfs.datanode.http.address Per DataNode web interface DATANODE的HTTP服务器和端口
dfs.secondary.http.address Per secondary NameNode web interface 辅助DATANODE的HTTP服务器和端口
32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置全部 Hadoop 守护线程的内存。它默
认是 200 GB。( 错误)
hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。
具体参考hadoop集群内存设置
33. DataNode 首次加入 cluster 的时候,若是 log 中报告不兼容文件版本,那须要 NameNode
执行“Hadoop namenode -format”操做格式化磁盘。(错误 )
分析:
首先明白介绍,什么ClusterID
ClusterID
添加了一个新的标识符ClusterID用于标识集群中全部的节点。当格式化一个Namenode,须要提供这个标识符或者自动生成。这个ID能够被用来格式化加入集群的其余Namenode。
详细内容可参考
hadoop集群添加namenode的步骤及常识
以上答案经过多个资料验证,对于资料不充分的内容,都标有”我的观点“,给出本测试题抱着谨慎的态度,但愿你们多批评指正。
转载请注明:出自about云http://www.aboutyun.com/thread-6787-1-1.htmlios