大数据分析原理和应用-习题解答 海沫_第1页
大数据分析原理和应用-习题解答 海沫_第2页
大数据分析原理和应用-习题解答 海沫_第3页
大数据分析原理和应用-习题解答 海沫_第4页
大数据分析原理和应用-习题解答 海沫_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

第1章答案一、单选题1.C 2.B 3.D 4.C 5.C 6.B 7.C 8.A 9.A10.D 11.B 12.A 13.B 14.C 15.C二、多选题1.BE 2.ACD3.ABCD 4.ABCDE 5.AD 6.ABD7.ABC8.AB三、判断题1.√ 2.× 3.× 4.√ 5.√ 6.× 7.× 8.×第2章答案一、单选题1.D 2.B 3.B二、多选题1.ABCE 2.ABD三、填空题HDFS MapReduce 分布式存储 分布式处理数据节点 名称节点集群资源管理器(ClusterManager) 工作节点(Worker)任务控制节点(Driver) 进程(Executor)动作 转换第3章答案一、单选题1.B 2.B 3.A 4.C 5.A6.D 7.C 8.B二、多选题1. BC 2.BD三、判断题1.× 2.× 3.√ 4.× 5.× 6.× 7.× 8.×第4章一、单选题1.B2.A3.C4.D二、多选题1.CD2.ABC三、判断题1.×2.√3.×4.×5.√6.×四、思考题1.Combiner和partition的作用:Combiner分为map端和reduce端,作用是把同一个key的键值对合并在一起。Combiner函数把一个map函数产生的多个<key,value>对合并成一个新的<key2,value2>,并将新的<key2,value2>作为输入reduce函数中。这个value2亦可称为values,因为有多个。合并的目的是减少网络传输。partition是分割map每个节点的结果,按照key分别映射给不同的reduce,也即把Map得到的结果按key值进行归类。2.开发MapReduce程序时可以去掉reduce:由于MapReduce计算输入和输出都是基于HDFS文件,所以大多数公司的做法是把mysql或sqlserver的数据导入HDFS,计算完后再导出到常规的数据库中,这是MapReduce不够灵活的地方之一。MapReduce优势在于提供了比较简单的分布式计算编程模型,使开发此类程序变得非常简单,像之前的MPI编程就相当复杂。狭隘地来讲,MapReduce是把计算任务给规范化了,将业务逻辑给拆分成2个大部分,Map和Reduce,可以先在Map部分把任务计算一半后,扔给Reduce部分继续后面的计算。当然在Map部分把计算任务全做完也是可以的。3.设计思路:可以结合Top-K和WordCount的设计思路进行设计,先将大文件按数据按照范围划分到不同的机器(可以根据数据值或者数据hash(md5)后的值),最好可以让数据划分后可以一次读入内存。利用WordCount的思路统计每个分片内的数据的频数,再统计每个分片内数据的频数最高的前N个数据,最后通过一个Reduce进程统计这个大文件的词频最高的前N个词。需要特别提醒的是,如果将大文件直接进行分片,由于不同分片可能包含同一个数据,如1000个分片都有100个数据A,则数据A虽然在每个分片内可能不是出现频率最高的前N个数据,但却有可能是整个大文件中出现频率最高的前N个数据。因此,我们应该按照数据的范围进行划分,确保相同数据存放在同一个分片,这样才可以统计该数据在大文件中的出现频数。4.设计思路:在map读取阶段,每一行的行号作为key,每一行的内容作为value,这是为了按行进行数据读取;在map输出阶段,将每行内容作为key,空白text作为value,这里的空白text仅用于占位;在reduce读取阶段,reduce能够读入每一行的全部内容,根据reduce的过程特性,会自动根据key来计算输入的value集合;因此在reduce输出阶段,当把数据作为key输出给reduce,无论这个数据出现多少次,reduce的最终结果中,key只输出一次,多个value值(也就是空白text)会进行归并,仍旧是空白text,因此我们最终输出归并后的key,就是本题所求。第5章一、单选题1.A2.B二、判断题1.×2.√三、思考题1.试使用“步骤1、步骤2、步骤3…..”说明YARN中运行应用程序的基本流程。步骤1,用户编写客户端应用程序,向YARN提交应用程序,提交的内容包括:ApplicationMaster程序、启动ApplicationMaster的命令、用户程序和相关文件等;步骤2,YARN中的ResourceManager负责接收和处理来自客户端的请求。ResourceManager为该应用程序分配第一个Container,并且和Container所在的NodeManager通信,要求该NodeManager在这个Container中启动应用程序对应的ApplicationMaster;步骤3,ApplicationMaster被创建后会首先向ResourceManager的应用程序管理器ApplicationManager注册,然后ApplicationMaster准备为该应用程序的各个任务申请资源,并监控它们的运行状态直到运行结束(即重复4~7步);步骤4,ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager的资源调度器(ResourceScheduler)申请和获取资源;步骤5,ResourceManager以容器的形式为提出申请的ApplicationMaster分配资源。一旦ApplicationMaster申请到资源后,便会和申请到的容器所对应的NodeManager进行通信,并且要求它在该容器中启动任务;步骤6,NodeManager为要启动的任务配置好运行环境,包括:环境变量、JAR包、二进制程序等,并且将启动命令写在一个脚本里,通过该脚本运行任务;步骤7,各个任务通过RPC协议向其对应的ApplicationMaster汇报自己的运行状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,以便当任务失败时,申请新的容器重新运行失败的任务;步骤8,ApplicationMaster向ResourceManager的应用程序管理器(ApplicationManager)注销并关闭自己。2.MapReduce2.0中,ApplicationMaster主要作用是什么,如何实现任务容错的?主要作用:ApplicationMaster和ResourceManager协商获取资源,并将获得的资源进一步分配给内部的各个Map任务或Reduce任务,实现资源的“二次分配”;ApplicationMaster会和NodeManager保持通信以进行应用程序的启动、运行、监控和停止;ApplicationMaster还会定时向ResourceManager发送“心跳”消息Heartbeat,报告资源的使用情况和应用的进度信息;当成业完成时,ApplicationMaster向ResourceManager注销容器。容错机制:ApplicationMaster会定期发送心跳消息到ResourceManager,包括ApplicationMaster失败事件。如果ResourceManager检测到失败事件,将会在一个新容器中重新启动一个ApplicationMaster的实例。对于新的ApplicationMaster来说,它会根据已失败的应用运行的作业的历史记录来恢复任务的状态,所以不需要重新运行它们。客户端会向ApplicationMaster轮询进度报告,如果ApplicationMaster失败了,客户端需要重新查找一个新的ApplicationMaster实例。在任务初始化期间,客户端会向ResourceManager询问ApplicationMaster的地址,然后缓存它,所以它每次轮询ApplicationMaster的请求不会使ResourceManager超载。如果ApplicationMaster失败了,客户端的轮询请求将会超时,此时客户端会向ResourceManager请求一个新的ApplicationMaster的地址。3.为什么会产生YARN,它解决了什么问题?有什么优势?为了解决了MapReduce1.0中存在的单点故障问题、可扩展性受限、无法支持其他计算框架和资源管理存在缺陷的四个问题,并实现“一个集群多个框架”的设计目的,到了Hadoop2.0以后,MapReduce1.0中的资源管理和调度功能,被单独分离出来形成YARN,成为一个纯粹的资源管理和调度框架,而不再是一个计算框架。相比MapReduce1.0,YARN具有解决单点故障问题、减少承担中心服务功能的ResourceManager的资源消耗以增加可扩展性、能够支持不同的计算框架实现“一个集群多个框架”目的、以及更合理的资源管理方式等优点。第6章答案1.常见的HTTP请求方法有GET方法和POST方法,GET方法用于请求指定的页面信息,并返回实体主体。POST方法用于向指定资源提交数据进行处理请求,数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。2.Scrapy框架主要包含Engine(引擎)、Scheduler(调度器)、Downloader(下载器)、Spider(爬虫)、ItemPipeline(管道)、DownloaderMiddlewares(下载中间件)、SpiderMiddlewares(Spider中间件)这几个组件。其中,引擎用来处理整个系统的数据流,触发事务。调度器负责接收引擎发送来的Request请求,并按照一定的方式进行整理排列。下载区负责下载引擎发送的所有Request请求,并将其获取到的Response交还给引擎。爬虫负责处理所有的Response,从中分析提取数据,获取Item字段需要的数据,并将其需要跟进的URL提交给引擎。管道负责处理爬虫中获取到的Item,并进行后期处理。下载中间件是一个可以自定义扩展下载功能的组件,而Spider中间件是可以自定扩展和操作引擎与爬虫之间通信的功能组件。3.常见的缺失值填充方法有填充固定值、填充均值、填充中位数、填充众数、填充上下条的数据等。4.在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。第7章1.聚类算法有K-means算法、BisectingK-means算法、GaussianMixtureModel、PowerIterationClustering、StreamingK-means算法、LatentDirichletAllocation算法,任选其三即可。分类算法有决策树算法、逻辑回归算法、支持向量机算法、随机森林算法、朴素贝叶斯算法、梯度提升树分类算法、多层感知器分类算法、One-vs-Rest分类算法、FactorizationMachines分类算法,任选其三即可。2.支持向量机算法的一大优势就是可以解决线性不可分问题。在解决线性不可分问题时

温馨提示

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

评论

0/150

提交评论