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 、hdfs-site.xml、mapred-site.xml 、yarn-site.xml 。
6.(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求。
7.(每空2分)一个HDFS集群包括两大部分,即namenode 与datanode 。
一般来说,一个集群中会有一个namenode 和多个datanode 共同工作。
8.(每空2分) namenode 是集群的主服务器,主要是用于对HDFS中所有的文件及内容数据进行维护,并不断读取记录集群中datanode 主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。
9.(每空2分) datanode 在HDFS集群中担任任务具体执行角色,是集群的工作节点。
文件被分成若干个相同大小的数据块,分别存储在若干个datanode 上,datanode 会定期向集群内namenode 发送自己的运行状态与存储内容,并根据namnode 发送的指令进行工作。
10.(每空2分) namenode 负责接受客户端发送过来的信息,然后将文件存储位置信息发送给client ,由client 直接与datanode 进行联系,从而进行部分文件的运算与操作。
11.(每空1分) block 是HDFS的基本存储单元,默认大小是128M 。
12.(每空1分)HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到3 个相互独立的硬件上,这样可以快速恢复损坏的数据。
13.(每空2分)当客户端的读取操作发生错误的时候,客户端会向namenode 报告错误,并请求namenode 排除错误的datanode 后,重新根据距离排序,从而获得一个新的的读取路径。
如果所有的datanode 都报告读取失败,那么整个任务就读取失败。
14.(每空2分)对于写出操作过程中出现的问题,FSDataOutputStream 并不会立即关闭。
客户端向Namenode报告错误信息,并直接向提供备份的datanode 中写入数据。
备份datanode 被升级为首选datanode ,并在其余2个datanode 中备份复制数据。
NameNode对错误的DataNode进行标记以便后续对其进行处理。
15.(每空1分)格式化HDFS系统的命令为:hdfs namenode –format 。
16.(每空1分)启动hdfs的shell脚本为:start-dfs.sh 。
17.(每空1分)启动yarn的shell脚本为:start-yarn.sh 。
18.(每空1分)停止hdfs的shell脚本为:stop-dfs.sh 。
19.(每空1分)hadoop创建多级目录(如:/a/b/c)的命令为:hadoop fs –mkdir –p /a/b/c 。
20.(每空1分)hadoop显示根目录命令为:hadoop fs –lsr 。
21.(每空1分)hadoop包含的四大模块分别是:Hadoop common 、HDFS 、Mapreduce 、yarn 。
22.(每空1分)namenode默认的WebUI访问端口号为:50070 。
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接收心跳信号的时间间隔为:3s 。
29.(每空1分)hadoop集群默认机架感知是启用的。
是否正确:错误。
30.(每空2分)Hadoop Map/Reduce Shuffle过程:inputsplit-->map函数—>内存缓冲区→Partition→sort→combine→spill--> map端merge -->reduce端copy—>merge→reduce函数。
31.(每空2分)一个NodeManager能够同时运行最大reduce任务数(默认): 2 。
32.(每空2分)默认情况下,一个同时运行了namenode,secondarynamenode和ResourceManager的主节点,所使用的内存容量为3000 M。
33.(每空2分)Hadoop集群中有三种作业调度算法,分别为FIFO调度,计算能力调度和公平调度。
34.(每空1分)HA产生的背景是:为了解决单NN可能出现宕机导致集群不可用或数据丢失的问题。
35.(每空1分)通过Zookeeper 管理两个或者多个NameNode,使一个NameNode为active 状态,并且同步每个NN的元数据,如果active 状态的NN宕机后马上启用状态为standby 状态的备用节点。
36.(每空1分) job 是客户端需要执行的一个工作单元。
37.(每空1分)Hadoop将作业分成若干个task 来执行,其中包括:maptask 和reducetask 。
38.(每空2分)combiner是通过Reducer 类来定义的。
39.(每空2分)map任务将其输出写入到本地磁盘。
40.(每空2分)reduce的输出通常存储在HDFS 中以实现可靠存储。
41.(每空2分)HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。
42.(每空2分)序列化用于分布式数据处理的两大领域为:进程间通信和永久存储。
43.(每空2分)hadoop使用自己的序列化格式为:Writable 。
二.简答题,3分(17题),5分(5题)共75分1.(3分)简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤,列出具体步骤更好。
答:1使用root账户登录2 修改IP3 修改host主机名4 配置SSH免密码登录5 关闭防火墙6 安装JDK7 解压hadoop安装包8 配置hadoop的核心文件hadoop-env.sh,core-site.xml , mapred-site.xml ,hdfs-site.xml9 配置hadoop环境变量10 格式化hadoop namenode -format11 启动节点start-all.sh2.(3分)请列出正常的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别都是什么,请尽量列的详细一些。
答:namenode:管理集群,存储数据的原信息,并管理记录datanode中的文件信息。
secondarynamenode:它是namenode的一个快照,会根据configuration中设置的值来决定多少时间周期性的去cp一下namenode,记录namenode中的metadata及其它数据。
Datanode:存储数据ResourceManager:ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)NodeManager:是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点(3分)请写出以下的shell命令(1)杀死一个job(2)删除hdfs上的/tmp/aaa目录(3)加入一个新的存储节点和删除一个节点需要执行的命令答:(1)mapred job -list得到job的id,然后执行mapred job –kill jobId就可以杀死一个指定jobId的job工作了。
(2)hadoop fs -rmr /tmp/aaa或者hdfs dfs –rmr /tmp/aaa(3)增加一个新的节点在新的节点上执行hadoop-daemon.sh start datanode然后在主节点中执行hdfs dfsadmin -refreshNodes删除一个节点的时候,只需要在主节点执行hdfs dfsadmin –refreshnodes3.(3分)请简述mapreduce中的combine和partition的作用答:combiner是发生在map的最后一个阶段,其原理也是一个小型的reducer,主要作用是减少输出到reduce的个数,减少reducer的输入,提高reducer的执行效率。
Partition的主要作用就是指定输出到reduce的个数的。
4.(3分)hdfs的体系结构答:HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。
其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据5.(3分)三个datanode中当有一个datanode出现错误时会怎样?答:当有一个datanode出现错误的时候,namenode会将那个datanode上的数据拷贝到其他的节点去进行存储。
6.(3分)文件大小默认为64M,改为128M 有什么影响?答:更改文件的block块大小,需要根据我们的实际生产中来更改block的大小,如果block 定义的太小,大的文件都会被切分成太多的小文件,减慢用户上传效率,如果block定义的太大,那么太多的小文件可能都会存到一个block块中,虽然不浪费硬盘资源,可是还是会增加namenode的管理内存压力。
7.(3分)NameNode与SecondaryNameNode的区别与联系?答:secondaryNameNode更像是Namenode的一个冷备份,当namenode宕机之后,可以从SecondaryNamenode上面恢复部分数据。