数据笔试题⽬练习(附答案)
⼀、选择题
1.下⾯哪个程序负责HDFS数据存储。答案C datanode
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)Jobtracke
陈凯歌结几次婚
此题分析:
hadoop的集是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有⼀个,⽽slave有多个SecondaryNameNode内存需求和NameNode在⼀个数量级上,所以通常secondary NameNode(运⾏在单独的物理机器上)和NameNode运⾏在不同的机器上。
在此我向⼤家推荐⼀个交流学习:615997810 ⾥⾯会分享⼀些资深⼤数据⼯程师架构师录制的视频录像:有Linux、Hadoop核集搭建、HDFS、Mapreduce、YARN、离线计算Flume 、Hive、实时计算、⼤数据ETL、⼤数据应⽤与数据挖掘的原理这些成为⼤, 数据开发师必备的知识体系。还能领取免费的学习资源,⽬前受益良多。
JobTracker和TaskTracker
JobTracker对应于NameNode
TaskTracker对应于DataNode
DataNode和NameNode是针对数据存放来⽽⾔的曲婉婷个人资料
JobTracker和TaskTracker是对于MapReduce执⾏⽽⾔的
mapreduce中⼏个主要概念,mapreduce整体上可以分为这么⼏条执⾏线索: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作者 答案:C Doug cutting
a)Martin Fowler b)Kent Beck c)Doug cutting
5. HDFS默认Block Size答案: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)Cloudera Manager 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)Cloudera manager b)Tarball c)Yum d)Rpm
三、判断题:
13. Ganglia不仅可以进⾏监控,也可以进⾏告警。(正确)
分析:此题的⽬的是考Ganglia的了解。严格意义上来讲是正确。ganglia作为⼀款最常⽤的Linux环境中的监控软件,它擅长的的是从节点中按照⽤户的需求以较低的代价采集数据。但是ganglia在预警以及发⽣事件后通知⽤户上并不擅长。最新的ganglia已经有了部分这⽅⾯的功能。但是更擅长做警告的还有Nagios。Nagios,就是⼀款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利⽤Nagios来发送预警通知,可以完美的实现⼀整套监控管理的系统。
14. Block Size是不可以修改的。(错误)
分析:它是可以被修改的Hadoop的基础配置⽂件是l,默认建⽴⼀个Job的时候会建⽴Job的Config,Config⾸先读⼊l的配置,然后再读⼊l的配置(这个⽂件初始的时候配置为空),l中主要配置需要覆盖的l的系统级配置。
15. Nagios不可以监控Hadoop集,因为它不提供Hadoop⽀持。(错误)
分析:Nagios是集监控⼯具,⽽且是云计算三⼤利器之⼀
16.如果NameNode意外终⽌,SecondaryNameNode会接替它使集继续⼯作。(错误)
分析:SecondaryNameNode是帮助恢复,⽽不是替代,如何恢复,可以查看.
17. Cloudera CDH是需要付费使⽤的。(错误)
分析:第⼀套付费产品是Cloudera Enterpris,Cloudera Enterprise在美国加州举⾏的Hadoop⼤会(Hadoop Summit)上公开,以若⼲私有管理、监控、运作⼯具加强Hadoop的功能。收费采取合约订购⽅式,价格随⽤的Hadoop叢集⼤⼩变动。
18. Hadoop是Java开发的,所以MapReduce只⽀持Java语⾔编写。(错误)
分析:rhadoop是⽤R语⾔开发的,MapReduce是⼀个框架,可以理解是⼀种思想,可以使⽤其他语⾔开发。
19. Hadoop⽀持数据的随机读写。(错)
分析:lucene是⽀持随机读写的,⽽hdfs只⽀持随机读。但是HBase可以来补救。HBase提供随机读写,来解决Hadoop不能处理的问题。HBase⾃底层设计开始即聚焦于各种可伸缩性问题:表可以很“⾼”,有数⼗亿个数据⾏;也可以很“宽”,有数百万个列;⽔平分区并在上千个普通商⽤机节点上⾃动复制。表的模式是物理存储的直接反映,使系统有可能提⾼⾼效的数据结构的序列化、存储和检索。
20. NameNode负责管理metadata,client端每次读写请求,它都会从磁盘中读取或则会写⼊metadata信息并反馈client端。(错误)
此题分析:
NameNode不需要从磁盘读取metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次namenode启动的时候才会读取。
1)⽂件写⼊
Client向NameNode发起⽂件写⼊的请求。
NameNode根据⽂件⼤⼩和⽂件块配置情况,返回给Client它所管理部分DataNode的信息。
Client将⽂件划分为多个Block,根据DataNode的地址信息,按顺序写⼊到每⼀个DataNode块中。
2)⽂件读取
Client向NameNode发起⽂件读取的请求。
21. NameNode本地磁盘保存了Block的位置信息。(个⼈认为正确,欢迎提出其它意见)
分析:DataNode是⽂件存储的基本单元,它将Block存储在本地⽂件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。NameNode返回⽂件存储的DataNode的信息。
Client读取⽂件信息。
22. DataNode通过长连接与NameNode保持通信。(? )
这个有分歧:具体正在这⽅⾯的有利资料。下⾯提供资料可参考。
⾸先明确⼀下概念:
(1).长连接
Client⽅与Server⽅先建⽴通讯连接,连接建⽴后不断开,然后再进⾏报⽂发送和接收。这种⽅式下由于通讯连接⼀直存在,此种⽅式常⽤于点对点通讯。
(2).短连接
Client⽅与Server每进⾏⼀次报⽂收发交易时才进⾏通讯连接,交易完毕后⽴即断开连接。此种⽅式常⽤于⼀点对多点通讯,⽐如多个Client连接⼀个Server.
23. Hadoop⾃⾝具有严格的权限管理和安全措施保障集正常运⾏。(错误)
分析:hadoop只能阻⽌好⼈犯错,但是不能阻⽌坏⼈⼲坏事
24. Slave节点要存储数据,所以它的磁盘越⼤越好。(错误)
分析:⼀旦Slave节点宕机,数据恢复是⼀个难题
25. hadoop dfsadmin –report命令⽤于检测HDFS损坏块。(错误)
26. Hadoop默认调度器策略为FIFO(正确)
27.集内每个节点都应该配RAID,这样避免单磁盘损坏,影响整个节点运⾏。(错误)
分析:⾸先明⽩什么是RAID,可以参考百科磁盘阵列。这句话错误的地⽅在于太绝对,具体情况具体分析。题⽬不是重点,知识才是最重要的。因为hadoop本⾝就具有冗余能⼒,所以如果不是很严格不需要都配备RAID。具体参考第⼆题。
28.因为HDFS有多个副本,所以NameNode是不存在单点问题的。(错误)
29.每个map槽就是⼀个线程。(错误)
分析:⾸先我们知道什么是map槽,map槽->map slotmap slot只是⼀个逻辑值(
org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),⽽不是对应着⼀个线程或者进程
30. Mapreduce的input split就是⼀个block。(错误)
31. NameNode的Web UI端⼝是50030,它通过jetty启动的Web服务。(错误)
32. Hadoop环境变量中的HADOOP_HEAPSIZE⽤于设置所有Hadoop守护线程的内存。它默认是200 GB。(错误)
分析:hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统⼀分配的内存在hadoop-env.sh 中设置,参数为HADOOP_HEAPSIZE,默认为1000M。
33. DataNode⾸次加⼊cluster的时候,如果log中报告不兼容⽂件版本,那需要NameNode执⾏“Hadoop amenode -format”操作格式化磁盘。(错误)
分析:
⾸先明⽩介绍,什么ClusterID
ClusterID。添加了⼀个新的标识符ClusterID⽤于标识集中所有的节点。当格式化⼀个Namenode,需要提供这个标识符或者⾃动⽣成。这个ID可以被⽤来格式化加⼊集的其他Namenode
>暗黑破坏神3职业选择