hadoop常见笔试题答案_第1页
hadoop常见笔试题答案_第2页
hadoop常见笔试题答案_第3页
hadoop常见笔试题答案_第4页
hadoop常见笔试题答案_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hadoop测试题一.填空题,1分(41空),2分(42空)共125分1 .(每空1分)datanode负责HDFS数据存储。2 .(每空1分)HDFS中的block默认保存3份。3 .(每空1分)ResourceManager程序通常与NameNode在一个节点启动。4 .(每空1分)hadoop运行的模式有:单机模式、伪分布模式、完全分布式。5 .(每空1分)Hadoop集群搭建中常用的4个配置文件为:core-site.xml、_、mapred-site.xml、。6 .(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块中,并通过预先设定的优化处理,模式对存储的数据进

2、行预处理,从而解决了大文件储存与计算的需求。7 .(每空2分)一个HDFS集群包括两大部分,即namenode与datanode。一般来说,一个集群中会有一个namenode和多个datanode共同工作。8 .(每空2分)namenode是集群的主服务器,主要是用于对HDFS中所有的文件及内容数据进行维护,并不断读取记录集群中datanode主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。9 .(每空2分)datanode在HDFS集群中担任任务具体执行角色,是集群的工作节点。文件被分成若干个相同大小的数据块,分别存储在若干个datanode上,datanode会定期向集群内

3、namenode发送自己的运行状态与存储内容,并根据namnode发送的指令进行工作。10 .(每空2分)namenode负责接受客户端发送过来的信息,然后将文件存储位置信息发送名client,由client直接与datanode进行联系,从而进行部分文件的运算与操作。11 .(每空1分)block是HDFS的基本存储单元,默认大小是128M。12 .(每空1分)HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到二_个相互独立的硬件上,这样可以快速恢复损坏的数据。13 .(每空2分)当客户端的读取操作发生错误的时候,客户端会向namenode报告错误,并请求name

4、node排除错误的datanode后,重新根据距离排序,从而获得一个新的的读取路径。如果所有的datanode都报告读取失败,那么整个任务就读取失败。14 .(每空2分)对于写出操作过程中出现的问题,FSDataOutputStream一并不会立即关闭。客户端向Namenode报告错误信息,并直接向提供备份的datanode中写入数据。备份datanode被升级为首选datanode、并在其余2个datanode中备份复制数据。NameNode对错误的DataNode进行标记以便后续对其进行处理。15 .(每空1分)格式化HDFS系统的命令为:hdfsnamenodeformat。16 .(每

5、空1分)启动hdfs的shell脚本为:start-dfssh。17 .(每空1分)启动yarn的shell脚本为:start-yarn.sh。18 .(每空1分)停止hdfs的shell脚本为:stop-dfs.sh。19 .(每空1分)hadoop创建多级目录(如:/a/b/c)的命令为:hadoopfsmkdirp/a/b/c。20 .(每空1分)hadoop显示根目录命令为:hadoopfsTsr。21 .(每空1分)hadoop包含的四大模块分别是:Hadoopcommon、HDFS、Mapreduce、yarn。22 .(每空1分)namenode默认的WebUI访问端口号为:50

6、070。23 .(每空1分)ResourceManager默认的WebUI访问端口号为:8088。24 .(每空1分)historyServer默认的WebUI访问端口号为:19888。25 .(每空1分)修改blocksize大小的属性是:dfs.blocksize,在hdfs-site.xml配置文件里。26 .(每空1分)HDFS中namenode的RPC端口号为:8021,其作用是:接收Client连接的RPC端口,用于获取文件系统metadata信息。27 .(每空2分)Mapper类中有4个函数。28 .(每空1分)默认NameNode周期性从DataNode接收心跳信号的时间间隔

7、为:3s。29 .(每空1分)hadoop集群默认机架感知是启用的。是否正确:错误。30 .(每空2分)HadoopMap/ReduceShuffle过程:inputsplit->map函数一>内存缓冲区Partitionsortcombinespill->map端merge->reduce端copy>mergereduce函数。31 .(每空2分)一个NodeManager能够同时运行最大reduce任务数(默认):2。32 .(每空2分)默认情况下,一个同时运行了namenode,secondarynamenode和ResourceManager的主节点,所使

8、用的内存容量为3000M。33 .(每空2分)Hadoop集群中有三种作业调度算法,分别为FIFO调度,计算能力调度和公平调度。34 .(每空1分)HA产生的背景是:为了解决单NN可能出现宕机导致集群不可用或数据丢失的问题。35 .(每空1分H甬过Zookeeper管理两个或者多个NameNode,使一个NameNode为active状态,并且同步每个NN的元数据,如果active状态的NN宕机后马上启用状态为standby状态的备用节点。36 .(每空1分)job是客户端需要执行的一个工作单元。37 .(每空1分)Hadoop将作业分成若干个task来执行,其中包括:maptask和redu

9、cetask。38 .(每空2分)combiner是通过Reducer类来定义的。39 .(每空2分)map任务将其输出写入到本地磁盘。40 .(每空2分)reduce的输出通常存储在HDFS中以实现可靠存储。41 .(每空2分)HDFS会对写入的所有数据计算校验和.并在读取数据时验证校验g_。42 .(每空2分)序列化用于分布式数据处理的两大领域为:进程间通信和永久存储。43 .(每空2分)hadoop使用自己的序列化格式为:Writable。二.简答题,3分(17题),5分(5题)共75分1. (3分)简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤,列

10、出具体步骤更好。答:1使用root账户登录2修改IP3修改host主机名4配置SSH免密码登录5关闭防火墙6 安装JDK7 解压hadoop安装包89 配置hadoop环境变量10 格式化hadoopnamenode-format112. (3分)请列出正常的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别都是什么,请尽量列的详细一些。答:namenode:管理集群,存储数据的原信息,并管理记录datanode中的文件信息。secondarynamenode:它是namenode的一个快照,会根据configuration中设置的值来决定多少时间周期性的去cp一下namen

11、ode,记录namenode中的metadata及其它数据。Datanode:存储数据ResourceManager:ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)NodeManager:是YARN中每个节点上的彳t理,它管理Hadoop集群中单个计算节点(1) 分)请写出以下的shell命令(1)杀死一个job(2)删除hdfs上的/tmp/aaa目录(3)加入一个新的存储节点和删除一个节点需要执行的命令答:(2) map

12、redjob-list得到job的id,然后执行mapredjob-killjobld就可以杀死一个指定jobId的job工作了。(3) hadoopfs-rmr/tmp/aaa或者hdfsdfs-rmr/tmp/aaa(3)增加一个新的节点在新的节点上执行hadoop-daemon.shstartdatanode然后在主节点中执行hdfsdfsadmin-refreshNodes删除一个节点的时候,只需要在主节点执行hdfsdfsadmin-refreshnodes3. (3分)请简述mapreduce中的combine和partition的作用答:combiner是发生在map的最后一个阶

13、段,其原理也是一个小型的reducer,主要作用是减少输出到reduce的个数,减少reducer的输入,提高reducer的执行效率。Partition的主要作用就是指定输出到reduce的个数的。4. (3分)hdfs的体系结构答:HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据5. (3分)三个datanode中当有一个datanode出现错误时会怎样?当有一个datanode出现错误的时候

14、,namenode会将那个datanode上的数据拷贝到其他的节点去进行存储。6. (3分)文件大小默认为64M,改为128M有什么影响?答:更改文件的block块大小,需要根据我们的实际生产中来更改block的大小,如果block定义的太小,大的文件都会被切分成太多的小文件,减慢用户上传效率,如果block定义的太大,那么太多的小文件可能都会存到一个block块中,虽然不浪费硬盘资源,可是还是会增加namenode的管理内存压力。7. (3分)NameNode与SecondaryNameNode的区别与联系?答:SecondaryNameNode更像是Namenode的一个冷备份,当name

15、node宕机之后,可以从SecondaryNamenode上面恢复部分数据。8. (5分)在一个运行的hadoop任务中,什么是InputSplit?InputSplit是MapReduce对文件进行处理和运算的输入单位,只是一个逻辑概念,每个InputSplit并没有对文件实际的切割,只是记录了要处理的数据的位置(包括文件的path和hosts)和长度(由start和length决定),默认情况下与block一样大。9. (3分)参考下列M/R系统的场景:hdfs块大小为64MB,输入类为FileInputFormat,有3个文件的大小分别为64KB,65MB,127MB,Hadoop框架会

16、把这些文件拆分为多少块?答:64k一个block65MB-两个文件:64MB是一个block,1MB是一个block127MB-两个文件:64MB是一个block,63MB是一个block10. (5分)hadoop中RecordReader的作用是什么?答:RecorderReader是一个接口,主要是用来读取文件的输入键值对的,我们也可以自定义输入的key,value对的读取规则。属于split和mapper之间的一个过程,将inputsplit输出的行为一个转换记录,成为key-value的记录形式提供给mapper11. (3分)Map阶段结束后,Hadoop框架会处理:Partiti

17、oning,Shuffle和Sort,在这几个阶段都发生了什么?答:Partition是对输出的key,value进行分区,可以自定义分区,按照业务需求,将map的输出归分到多个不同的文件中将map的输出作为输入传给reducer称为shufflesort是排序的过程,将map的输出,作为reduce的输入之前,我们可以自定义排序,按照key来又map的输出进行排序12. (5分)如果没有定义partitioner,那数据在被送达reducer前是如何被分区的?答:Partitioner是在map函数执行context.write()时被调用。用户可以通过实现自定义的Partitioner来控

18、制哪个key被分配给哪个Reducer。hadoop有一个默认白分区类,HashPartioer类,通过对输入的k2去hash值来确认map输出的k2,v2送到哪一个reduce中去执行。13. (3分)什么是combiner?答:combiner就是规约操作,通过对map输出的数量进行规约,可以减少reduce的数量,提高执行效率。combiner的输入输出类型必须和mapper的输出以及reducer的输入类型一14. (3分)分别举例什么情况要使用combiner,什么情况不使用?答:求平均数的时候就不需要用combiner,因为不会减少reduce执行数量。在其他的时候,可以依据情况,

19、使用combiner,来减少map的输出数量,减少拷贝到reduce的文件,从而减轻reduce的压力,节省网络开销,提升执行效率15. (5分)简述Hadoop中replication(复本)放置策略?Hadoop的默认布局策略是在运行客户端的节点上放第一个复本;第二个复本放在与第一个不同且随机另外选择的机架中的节点上(离架);第三个复本与第二个复本放在同一个机架上,且随机选择另一个节点。16. (5分)如何为一个hadoop任务设置mappers的数量?map的数量通常是由hadoop集群的DFS块大小确定的,也就是输入文件的总块数,正常的map数量的并行规模大致是每一个Node是1010

20、0个,对于CPU消耗较小的作业可以设置Map数量为300个左右,但是由于hadoop的没一个任务在初始化时需要一定的时间,因此比较合理的情况是每个map执行的时间至少超过1分钟。具体的数据分片是这样的,InputFormat在默认情况下会根据hadoop集群的DFS块大小进行分片,每一个分片会由一个map任务来进行处理,当然用户还是可以通过参数。还有一个重要参数就是mapred.map.tasks,这个参数设置的map数量仅仅是一个提示,只有当InputFormat决定了map任务的个数比mapred.map.tasks值小时才起作用。同样,Map任务的个数也能通过使用JobConf的conf

21、.setNumMapTasks(intnum)方法来手动地设置。这个方法能够用来增加map任务的个数,但是不能设定任务的个数小于Hadoop系统通过分割输入数据得到的值。当然为了提高集群的并发效率,可以设置一个默认的map数量,当用户的map数量较小或者比本身自动分割的值还小时可以使用一个相对交大的默认值,从而提高整体hadoop集群的效率。17. (3分)hdfs文件写入的流程?答:1) Client向NameNode发起文件写入的请求。2) NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。3) Client将文件划分为多个Block,根据

22、DataNode的地址信息,按顺序写入到每一个DataNode块中。18. (3分)hdfs文件读取的流程?答:1) Client向NameNode发起文件读取的请求。2) NameNode返回文件存储的DataNode的信息。3) Client读取文件信息。HDFS典型的部署是在一个专门的机器上运行NameNode,集群中的其他机器各运行一个DataNode;也可以在运行NameNode的机器上同时运行DataNode,或者一台机器上运行多个DataNode。一个集群只有一个NameNode的设计大大简化了系统架构。19. (3分)Hadoop单机(本地)模式中的注意点?答:在单机式(sta

23、ndalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。20. (3分)伪分布模式中的注意点?答:伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。21. (3分)完全分布模式又有什么注意点?答:完全分布模式通常被用于生产环境,这里我们使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及tasktracker运行的主机。在分布式环

24、境下,主节点和从节点会分开。姓名:Hadoop练习题分数:单项选择题1. 下面哪个程序负责HDFSa据存储。a) NameNodeb) Jobtrackerc) DatanodeVd) secondaryNameNodee) tasktracker2. HDfS中的block默认保存几份?a) 3份,b) 2份c) 1份d) 不确定3. 下列哪个程序通常与NameNode在一个节点启动?a) SecondaryNameNodeb) DataNodec) TaskTrackerd) JobtrackerV4. Hadoop作者a) MartinFowlerb) KentBeckc) Dougcu

25、ttingV5. HDFS默认BlockSizea) 32MBb) 64MB,c) 128MB6. 下列哪项通常是集群的最主要的性能瓶颈a) CPUb) 网络c) 磁盘,d) 内存7. 关于SecondaryNameNode哪项是正确的?a) 它是NameNode的热备b) 它对内存没有要求c) 它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间,d) SecondaryNameNode应与NameNode部署到一个节点8. 一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block?a) 1b) 2Vzc) 3d) 49. HDFS有一个

26、gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时inputsplit大小为?a) 64MBb) 75MB,c) 一个map读取64MB,另外一个map读取11MB10. HDFS有一个LZO(withindex)文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时inputsplit大小为?a) 64MBb) 75MBc) 一个map读取64MB,另外一个map读取11MB,多选题:11. 下列哪项可以作为集群的管理工具a) Puppet,b) PdshiVc) ClouderaManager,d) Rsync+ssh+scp/12. 配置机架感知的下面哪项正确a)如果一个机架出问题,不会影响数据读写,b) 写入数据的时候会写到不同机架的DataNode中,c) MapReduce会根据机架获取离自己比较近的网络数据,13. Client端上传文件的时候下列哪项正确a) 数据经过NameNode传递给DataNodeb) Client端将文件以Block为单位,管道方式依次传到DataNodeVc) Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论