![Hadoop应用开发与案例实战课后习题参考答案1-10章全书章节练习题答案题库_第1页](http://file4.renrendoc.com/view/4f1439b2494137c269dbe0963de03a9c/4f1439b2494137c269dbe0963de03a9c1.gif)
![Hadoop应用开发与案例实战课后习题参考答案1-10章全书章节练习题答案题库_第2页](http://file4.renrendoc.com/view/4f1439b2494137c269dbe0963de03a9c/4f1439b2494137c269dbe0963de03a9c2.gif)
![Hadoop应用开发与案例实战课后习题参考答案1-10章全书章节练习题答案题库_第3页](http://file4.renrendoc.com/view/4f1439b2494137c269dbe0963de03a9c/4f1439b2494137c269dbe0963de03a9c3.gif)
![Hadoop应用开发与案例实战课后习题参考答案1-10章全书章节练习题答案题库_第4页](http://file4.renrendoc.com/view/4f1439b2494137c269dbe0963de03a9c/4f1439b2494137c269dbe0963de03a9c4.gif)
![Hadoop应用开发与案例实战课后习题参考答案1-10章全书章节练习题答案题库_第5页](http://file4.renrendoc.com/view/4f1439b2494137c269dbe0963de03a9c/4f1439b2494137c269dbe0963de03a9c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题一、选择题1下列有关Hadoop的说法正确的是( ABCD )。AHadoop最早起源于NutchBHadoop中HDFS的理念来源于谷歌发表的分布式文件系统(GFS)的论文CHadoop中MapReduce的思想来源于谷歌分布式计算框架MapReduce的论文DHadoop是在分布式服务器集群上存储海量数据并运行分布式分析应用的一个开源的软件框架2使用Hadoop的原因是( ABCD )。A方便:Hadoop运行在由一般商用机器构成的大型集群上或者云计算服务上B稳健:Hadoop致力于在一般商用硬件上运行,其架构假设硬件会频繁失效,Hadoop可以从容地处理大多数此类故障C可扩展:Had
2、oop通过增加集群节点,可以线性地扩展以处理更大的数据集D简单:Hadoop允许用户快速编写高效的并行代码3Hadoop的作者是( B )。AMartin FowlerBDoug CuttingCKent BeckDGrace Hopper4以下关于大数据特点的描述中,不正确的是( ABC )。A巨大的数据量B多结构化数据C增长速度快D价值密度高二、简答题1Hadoop是一个什么样的框架?答:Hadoop是一款由Apache基金会开发的可靠的、可伸缩的分布式计算的开源软件。它允许使用简单的编程模型在跨计算机集群中对大规模数据集进行分布式处理。2Hadoop的核心组件有哪些?简单介绍每一个组件的
3、作用。答:核心组件有HDFS、MapReduce、YARN。HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop的核心组件之一,作为最底层的分布式存储服务而存在。它是一个高度容错的系统,能检测和应对硬件故障,可在低成本的通用硬件上运行。MapReduce是Hadoop的一个分布式计算框架,也是一种大规模数据集并行运算的编程模型,主要用于处理海量数据的运算。MapReduce主要包括map(映射)和reduce(规约)两部分。它是一个分布式运算程序的编程框架,其核心功能是将用户编写的业务逻辑代码和自带的默认组件整合成一个完整的分布式运
4、算程序,并发运行在Hadoop集群上。Hadoop YARN 是开源 Hadoop分布式处理框架中的资源管理和作业调度框架,主要负责将系统资源分配给在 Hadoop 集群中运行的各种应用程序,并调度在不同集群节点上执行的任务3简述Hadoop生态体系,并列举此生态体系中涉及的技术。答:当今的Hadoop已经成长为一个庞大的生态体系,随着生态体系的成长,新出现的项目也越来越多,其中不乏一些非Apache主管的项目,这些项目对Hadoop做了更好的补充或者更高层的抽象,涉及的技术有HBase、Hive、Sqoop、Pig、Flume、Oozie、ZooKeeper、kafka、Spark等。4简单
5、列举几个Hadoop的应用场景。答:(1)在线旅游(2)电子商务(3)移动数据(4)能源发现(5)节约能源(6)图像处理(7)医疗保健(8)IT安全(9)欺诈检测(10)基础设施管理习题一、填空题1Hadoop集群中的节点 DataNode 负责HDFS的数据存储。2Hadoop集群中的 Jobtracker 程序通常与NameNode在一个节点启动。3Hadoop的运行模式有 独立(本地)运行模式 、伪分布式运行模式 和完全分布式运行环境 。4Hadoop集群搭建中常用的4个配置文件有 hadoop-env.sh 、 core-site,xml 、 mapred-site,.xml 和 ya
6、rn-site.xml 。二、操作题1根据2.2节伪分布式安装的安装及配置步骤,在自己计算机上搭建伪分布式Hadoop集群环境,环境搭建完毕后通过命令及Web访问方式查看集群的启动情况。答:具体步骤见章节内容。2. 根据2.3节完全分布式安装的安装及配置步骤,根据自己计算机的实际配置情况分析是否可以搭建至少2台节点的完全分布式Hadoop集群环境,如果配置允许则搭建完全分布式集群环境,搭建完毕后通过命令或Web访问方式查看集群的启动信息。答:具体步骤见章节内容。习题一、填空题1由于NameNode宕机,导致无法对外提供服务,可通过搭建 HDFS HA 来解决。2YARN的高可用主要是解决 Re
7、sourceManager单点故障 。3由于HDFS存储数据量过大,导致NameNode内存不足,可以通过搭建 联邦 来解决。二、简答题1Hadoop是如何解决高可用问题的?答:对于Hadoop集群,RM和NN都是“Single Point of Failure(单点故障)”,起着“一票否决”的作用,所以Hadoop对NN和RM都提供了HA选项,采用的都是Active/Standby的措施来达到HA的要求。所谓Active/Standby是一种热备方案,这种方案中,“在位”的行使职权的Active的管理者只有一个,但有一个作为备份(即Standby)的候补管理者时刻准备着,当Active的管理
8、者发生故障,Standby的管理者就立刻顶上,并进行业务的接管,不用临时开机和初始化。 2简述ZooKeeper的功能及其在Hadoop高可用中起到的作用。答:ZooKeeper主要用来解决分布式应用中经常遇到的一些数据管理问题,如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。在Hadoop的HA集群中,使用ZooKeeper的存储功能可保存NameNode的状态信息,ZooKeeper会监听两个NameNode的工作状态,当状态发生改变时,由其协调Active与Standby状态的切换。3YARN是如何解决高可用问题的?答:Hadoop在2.4版本之后,针对YARN引入了H
9、A机制,也就是ResourceManager的Active/Standby。YARN的HA与HDFS的HA基本相同,但YARN HA能够支持多个Standby的ResourceManager(Hadoop 2.x的HDFS HA只允许有一个Standby的NameNode,Hadoop 3.x之后,允许有多个Standby的NameNode),Active和Standby的状态可以通过控制台命令手动切换,也可以自动切换。4Hadoop联邦解决了什么问题?答:Hadoop集群启动后,NameNode在内存中保存了文件和块的映射关系,这意味着对于一个拥有大量文件的超大集群来说,由于数据量太大,Na
10、meNode的内存中可能也无法放下这么多的对应关系,内存将成为限制系统横向扩展的瓶颈。Hadoop 2.x版本中引入了HDFS联邦机制来解决这个问题一、选择题1数据块(block)的大小由( A )参数决定。Adfs.blocksizeBfs.replication Cfs.defaultFS Ddfs.block2创建HDFS新目录“/newdir”的命令为( D )。Ahadoop mkdir /newdirBhadoop fs mkdir /newdirChadoop fs mkdir newdirDhadoop fs mkdir /newdir二、简答题简述HDFS的写数据流程。答:(
11、1)客户端首先与NameNode建立连接,发起文件上传请求。(2)NameNode检查上传路径是否存在,目标文件是否存在,权限是否允许。若无问题则修改命名空间,并反馈允许上传。(3)客户端收到允许上传反馈后再次请求第一个Block所在的节点名。(4)NameNode根据机架感知原理选取三个节点(DataNode1、DataNode2、DataNode3)并将其反馈给客户端。(5)客户端从获取的三个节点中选取一个节点建立管道(Pipeline)连接,请求上传数据。节点1收到请求后与节点2获取连接,节点2收到请求后与节点3获取连接。(6)连接全部建立成功后,客户端开始向第一个节点传输第一个Bloc
12、k。该Block数据以Packet为单位进行传输。数据的校验则是以更小的Chunk单位进行的。数据在客户端本地和DataNode端都有读取和写入的缓存队列。每一次Packet在Pipeline上的传输都需要反向应答。直到写完预定的Block为止。节点1、节点2和节点3之间也会以同样的方式同步传输。(7)当第一个Block传输完毕后,客户端会再次发送请求到NameNode,将整个流程再次重复。三、编程题编写程序完成HDFS文件系统根目录下所有文件的列举。Configuration conf = new Configuration();hdfs=FileSystem.get(new URI(HDF
13、S_PATH), conf, hadoop); String path= /; FileStatus listStatus = hdfs.listStatus(new Path(path);for(FileStatus fs:listStatus) system.out.println(fs.getPath();习题一、填空题1YARN提供的调度器策略有FIFO Scheduler(FIFO调度器)、Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器).2YARN采用的体系架构是主从结构,其中主节点是 ResourceManager,从节点是 Node
14、Manager 。3ResourceManager的两个重要组件是Scheduler和ApplicationsManager。4在NodeManager中封装内存、CPU、磁盘、网络等资源的是 Container 。二、简答题1简述共享集群模式的优点。答:(1)资源利用率高(2)运维成本低(3)数据共享2简述ApplicationMaster的主要作用。答:(1)为运行应用向ResourceManager申请资源。(2)在Job中对Task实现调度。(3)与NodeManager通信以启动或者停止任务。(4)监控所有任务的运行情况,并在任务失败的情况下重新为任务申请资源以重启任务3简述YARN
15、的工作流程。答:(1)用户编写客户端应用程序,向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。(2)ResourceManager接到客户端应用程序的请求,会为该应用程序分配一个Container,同时ResourceManager的ApplicationManager会与该容器所在的NodeManager通信,要求它在这个Container中启动一个ApplicationMaster。(3)ApplicationMaster被创建后首先向ResourceManager注册,这样用户可以直接通过Resource
16、Manager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4步骤7。(4)ApplicationMaster采用轮询的方式,通过RPC协议向ResourceManager申请和领取资源。(5)一旦ApplicationMaster申请到资源,就会与该容器所在的NodeManager通信,要求它启动任务。习题一、填空题1MapReduce执行过程中,数据都是以key、value的形式进行传递的。2整个MapReduce作业的生命周期是由ApplicationMaster来管理的。3整个MapReduce作业的资源分配是由ResourceMana
17、ger来管理的。二、简答题1简述MapReduce的执行过程。答:在map阶段,系统会将数据拆分成若干个“分片”(split),分片完成后,再将这些“分片”数据以键-值方式传递给map进行处理,map和reduce都以键-值形式作为输入和输出。作为map端的输入,默认情况下,键是字符的位移,值是当前行的数据;此键-值对会作为参数被陆续传递给map端的处理程序,直到数据全部传递完成。map方法产生输出时,经过分区和排序后将其写入磁盘。在reduce端的,reduce端会通过多个复制线程去“拉取”不同map节点输出的数据文件,并对这些数据文件进行排序和合并,合并之后的文件被传入reduce方法中,
18、reduce方法执行后,数据将被输出到文件系统,通常是HDFS。 2简述shuffle过程。答:(1)map端当map任务产生输出时,基于效率的考虑,输出数据不会直接写到磁盘上,而是先写入一个缓冲区中,此缓冲区默认大小为100MB,当写入的数据达到缓冲区的阈值(默认为80%)时,会将缓冲区中的数据溢写(spill)到磁盘,生成一个文件,在写入磁盘文件之前,会对这部分数据进行分区,然后对每个分区中的数据按键进行排序,然后写入磁盘中。随着map任务的执行,可能会产生多个溢写文件,这些文件在任务结束执行前,会合并为一个已分区且每个分区都已排序的完整的文件,并保存在本地的磁盘中。(2)reduce端r
19、educe端并不会等待所有map任务结束再去获取map端输出的数据,reduce端的一个线程会定期询问ApplicationMaster,一旦有map任务结束,reduce端就开始复制数据。reduce会启动若干复制线程,以并行的方式从各个map节点复制数据。reduce节点通常不会复制map节点整个的输出文件,而是只复制属于自己的分区数据,复制完成所有map的数据后,会将各部分数据再次进行合并,合并前会进行必要的排序,以保持数据的完整性。3简述本地化的含义。答:map任务有本地化的局限,意思是map任务一般情况下都会运行在分片所在的节点上,这样的好处是可以不用跨节点传输数据,从而大大提高了程
20、序运行效率。4简述数据分片过程。答:在map阶段,系统会将数据拆分成若干个“分片”(split),这里所说的“分片”只是逻辑上的切分,并非真正物理上的切分,每个分片的大小默认就是一个块的大小。例如,假设初始设定一个块的大小为128MB,如果有两个文件,一个50MB,一个150MB,则一共会被划分成3个分片,50MB的划分成一个,150MB划分成两个,分别是128MB和22MB。5简述YARN的MapReduce的资源分配过程。答:当MapReduce作业启动后,会通知YARN,并由YARN的ResourceManager在NodeManager的管理下分配一个容器(Container),然后在
21、这个容器中启动ApplicationMaster进程。MapReduce作业的ApplicationMaster是一个Java程序,它的主类是MRAppMaster。ApplicationMaster启动后,首先会做一定的初始工作,然后会分析MapReduce作业的规模,如果规模足够大,则再次向ResourceManager请求容器用于map和reduce任务的执行。对于map任务,根据数据本地化的要求,会尽可能地将容器分配到数据所在节点,而reduce任务则不会考虑。默认情况下,每个map和reduce任务都被分配了1024MB的内存和一个虚拟CPU内核,容器启动后,会拉取任务所需的相关的配
22、置信息、打包好的MapReduce的JAR文件以及来自分布式缓存的文件到当前节点,然后开始运行map或reduce任务。6简述InputFormat和OutputFormat的作用。答:(1)InputFormat负责创建输入分片并将它们分割成记录(2)OutputFormat主要用于描述输出数据的格式,它能够将用户提供的key/value对写入特定格式的文件中习题一、选择题1Writable接口中进行序列化写操作的方法为(A)。AwriteBreadFieldsCwriteFieldsDread2SequenceFile.Writer完成新记录的添加的方法为( C )。AwriteBnewC
23、appendDadd二、简答题列举Java.lang.String和Text类型的区别。答:(1)Text对象的charAt方法返回的是当前位置字符对应的Unicode编码的位置,String对象返回的是当前位置对应的字符(char类型)。三、编程题实现自定义序列化类,要求该类可以实现以下数据的序列化。编号姓名年龄StringStringBytepublic class People implements Writableprivate String id;private String name;private byte age;Overridepublic void readFields(D
24、ataInput in) throws IOException id=in.readUTF();name=in.readUTF();age =in.readByte();Overridepublic void write(DataOutput out) throws IOException out.write(id.getBytes();out.write(name.getBytes();out.write(age);习题 一、选择题1Hadoop 3.x是基于( C )版本的JDK进行编译的。AJDK 1.6BJDK 1.7CJDK 1.8DJDK 1.92Hadoop 2.x版本中HDFS
25、默认的NameNode rpc监听端口号是( B ),Hadoop 3.x中将此默认端口号改为了( B )。A9000 9820B8020 9820C50070 8020D50010 500703Hadoop的NameNode rpc监听端口可以在配置文件( C )中进行配置。Amapred-site.xml Bhdfs-site.xmlCcore-site.xml Dhadoop-env.sh4以下不属于Hadoop 3.x新特性的是( D )。A引入了EC技术 BJDK进行了升级C实现了DataNode内部负责均衡D实现了HA集群二、填空题1EC技术的全称是Erasure Coding,是
26、Hadoop HDFS 3.x 版本以上新增的功能。2在较老版本的Hadoop集群中,NameNode是HDFS集群中的单点故障。每个集群只有一个NameNode,并且如果该计算机或进程不可用,则整个集群将不可用。3Hadoop 2.x 版本中HDFS默认的NameNode HTTP UI端口号是50070,Hadoop 3.x版本中将此默认端口号改为了9870。三、简答题1Hadoop 3.x相比Hadoop 2.x都有哪些新的特性?答:(1)Hadoop 2.x版本是基于JDK 1.7进行编译的,而Hadoop 3.x所有的Hadoop JARs都是针对JDK 1.8编译的。(2)HDFS
27、 3.x很多改进采用了EC技术,且支持数据的擦除编码(3)Hadoop 3.x引入了YARN Timeline Service(YARN时间轴服务)v.2,创建v.2是为了应对v.1的两个主要挑战:提高时间轴服务的可伸缩性和可靠性、通过引入流和聚合来增强可用性。 (4)在Hadoop 3中允许用户运行多个备用的NameNode。(5)DataNode内部负载均衡(6)端口号的改变(7)Shell脚本重写(8)GPU和FPGA支持2Hadoop 3.x支持的NameNode和传统的Hadoop HA架构相比有什么优势?答:在Hadoop 3中允许用户运行多个备用的NameNode3Hadoop
28、3.x的DataNode内部负载均衡功能如何使用?答:Hadoop 3.x通过新的内部DataNode平衡功能来处理内部负载均衡,具体是通过HDFSDisk Balancer CLI(HDFS磁盘平衡命令行接口)来实现的,实现Disk Balancer功能,首先需要创建操作计划,然后在DataNode上执行该计划。操作计划通常是由一组语句组成的,计划中描述两个磁盘之间应移动多少数据。使用磁盘平衡功能前应该注意在默认情况下,集群上未启用磁盘平衡器。要启用磁盘平衡功能,必须在hdfs-site.xml配置文件中将dfs.disk.balancer.enabled设置为true。习题一、填空题1Cl
29、oudera Manager的主要组件包括 Server 、 Agent 、 Management 、 Database 、Cloudera Repository和Clients。2Cloudera Manager提供的管理功能有 批量自动化部署节点 、 可视化的参数配置 、 智能参数验证以及优化 和 权限管理 。3Cloudera Manager提供的监控功能有 服务监控 、 主机监控、 行为监控、 事件活动、报警 和 日志和报告 。二、简答题1简述Cloudera Manager的主要特点。答:(1)大数据处理相关服务安装过程自动化,部署时间从几周缩短到几分钟。(2)提供集群范围内的主机和
30、正在运行的服务的实时视图。(3)提供了单个中央控制台,方便在整个集群中进行配置更改。(4)整合了各种报告和诊断工具,可以优化集群的性能和利用率,提高服务质量,提高合规性并降低管理成本。2分别简述service和service instance的概念。答:Service(服务)是Cloudera Manager中的托管功能类别,有时也被称为服务类型,这些服务运行在集群中,可能是分布式的,也可能是单节点的,如MapReduce、HDFS、YARN和Spark。Service Instance(服务实例)即在Cloudera Manager集群中运行的服务的实例。 3分别简述role、role in
31、stance和role group的概念。Role(角色)是指service中的一类功能,有时也被称为角色类型。例如,HDFS服务中的角色有NameNode、SecondaryNameNode、DataNode和Balancer。Role Instance(角色实例)是指Cloudera Manager中,在主机上运行的角色的实例,它通常会映射到UNIX进程中,我们可以通过jps命令对其进行查看。在Cloudera Manager中,Role Group(角色组)是指角色实例的一组配置属性,这是一种将配置分配给一组角色实例的机制。三、上机题1根据9.4节,完成Cloduera Manager和
32、CDH的离线部署,搭建CDH集群环境。答:见章节内容2在Cloudera Manager管理菜单中启动HDFS HA和YARN HA。答:见章节内容习题一、填空题1Avro Schema的基本类型中表示空值的是 null ,表示8位无符号字节序列的是 bytes 。2Avro Schema的复杂类型中record类型定义record名称的属性是 name ,限定名称的属性是 namespace 。3定义Avro Schema类型的属性是 type ,定义JSON数组的属性是 fields 。二、简答题1简述Apache Avro的主要功能。答:(1)丰富的数据结构。(2)一种紧凑、快速的二进制数据格式。(3)容器文件,用于存储持久性数据。(4)远程过程调用。(5)与动态语言的简单集成。读取或写入数据文件,使用或实现RPC协议均不需要代码生成。代码生成是可选的优化,仅对于静态类型的语言值得实现。2简述Avro序列化与反序列的过程。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023九年级化学下册 第九单元 溶液课题2 溶解度第2课时 溶解度说课稿 (新版)新人教版
- 《Unit 9 My family》(说课稿)-2024-2025学年科普版(2024)英语三年级上册
- 《Unit 4 My body》(说课稿)-2024-2025学年牛津沪教版英语一年级上册
- Unit1 What's he like?PartA learn(说课稿)-2024-2025学年人教PEP版英语五年级上册
- 七年级生物上册 3.7.1《能量的释放和利用》第1课时说课稿2 (新版)苏科版
- Unit 1 School 第四课时(说课稿)-2024-2025学年人教新起点版英语一年级上册
- 2024-2025年高中化学 第1章 第1节 原子结构模型说课稿 鲁科版选修3
- 2025年度汽车维修抵押借款合同协议
- 2025年度农业科技示范园土地租用协议范本
- 2025年度试用期劳动协议书-二零二五年度环保行业员工
- 2024年公安机关理论考试题库附答案【考试直接用】
- 课题申报参考:共同富裕进程中基本生活保障的内涵及标准研究
- 2025年浙江嘉兴桐乡市水务集团限公司招聘10人高频重点提升(共500题)附带答案详解
- 食品企业如何做好虫鼠害防控集
- 2025中国联通北京市分公司春季校园招聘高频重点提升(共500题)附带答案详解
- 康复医学科患者隐私保护制度
- 环保工程信息化施工方案
- 狂犬病暴露后预防处置
- 红色中国风2025蛇年介绍
- 2024年安徽省高考地理试卷真题(含答案逐题解析)
- 高中学校开学典礼方案
评论
0/150
提交评论