还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《大数据分析与实战(第版)》Spark2课后习题答案第章语言基础1Scala
一、填空题函数式
1..值类型
2.
3.var
4.def
5.match
二、判断题对
1.错
2.错
3.对
4.错
5.
三、选择题
1.B
2.A、
3.C D
4.B、
5.C D
四、编程题具体代码如文件Case.scalao工case classStudentinfoname:String,age:nt,gender:String objectStudentManager{//添加学生private varstudents:Set[Studentinfo]=Set.empty defaddStudentstudent:Studentinfo:Unit={students+=student学生添力口成功!”printin s”${student.name}//删除学生def deleteStudentname:String:Unit={val studentToDelete=students.find_.name==name studentToDeletematch{caseSomestudent=students-=student在训练模型评估阶段,库中的相关算法会将数据准备阶段准备好的训练数据进行模型训练,Spark MLlib然后通过测试数据测试模型得到测试结果,如果测试结果符合预期,则认为该模型为最佳模型,如果不符合预期,则反复进行模型训练得到最佳模型部署预测阶段是处理数据的最后一个阶段,该阶段得到的预测结果会被应用于生产环境中Spark MLlib学生删除成功!”printing”${student.namecase None=未找到名为的学生!”printin s”${name}//按姓名查询学生def queryByNamename:String:Unit={val foundstudents=students.filter_.name==nameif foundStudents.nonEmpty{查询到以下学生printing””foundStudents.foreachprintin}else{未找到名为的学生!printin s”${name}}//按年龄查询学生def queryByAgeage:Int:Unit={val foundStudents=students.filter_.age==ageif foundStudents.nonEmpty{查询到以下学生printing””foundStudents.foreachprintin}else{未找到年龄为的学生!”printin s”${age}object Case{def mainargs:Array[String]:Unit={,“女StudentManager.addStudentStudentinfoAlice“20,,“男“StudentManager.addStudentStudentinfoBob22,,20“男StudentManager.addStudentStudentinfo CharliefStudentManager.queryByNameAliceStudentManager.queryByAge22StudentManager.deleteStudentBobStudentManager.queryByNameBob”
一、填空题
1.Spark SQL.任务
2.
3.SparkContext
4.Spark SQL
5.RDD
二、判断题错
1.对
2.错
3.错
4.错
三、选择题
5.
1.D
2.ABC
3.C
4.B
5.C
四、简答题简述客户端模式和集群模式下部署程序的区别
1.Spark客户端模式下会运行在提交程序的服务器中因此,可以在服务器中查看程序Driver ProgramSpark Spark输出的结果集群模式下会运行在集群的中,或者作为一个在集Driver ProgramSpark WorkerApplicationMaster YARN群的上运行,这取决于程序运行在集群还是集群NodeManager SparkSpark YARN简述运行流程
2.Spark当用户将创建的程序提交到集群时会创建根据程序的配置1Spark Driver Program,DriverProgramSpark信息初始化通过连接集群并申请运行资源初始化完SparkContext SparkContext Cluster ManagerSparkContext成后,会创建和DAG SchedulerTask Scheduler向发送资源请求,会根据其自身的资源调度规则来决2SparkContextCluster Manager Cluster Manager定如何分配资源通常情况下,会通知启动一个或多个来处理这些每Cluster ManagerWorker Executor Task个负责执行特定的并且会根据需要动态地分配和释放资源Executor Task,启动完成后,会向发送资源和启动状态的反馈这样,3Executor WorkerCluster Manager ClusterManager可以监控中的状态如果发现启动失败或异常终止,会及时通知Worker ExecutorExecutor ClusterManager重新启动以确保任务的顺利执行Worker Executor,会向注册,并周期性地从那里获取任务,然后执行这些任务4Executor DriverProgram DriverProgram将发送给中的来执行程序的代码在执行5Task SchedulerTask WorkerExecutor SparkExecutorTask时,会将的运行状态信息发送给的运行状态信息通常包括的执行进度、成功Task DriverProgramo Task Task或失败等当程序执行完成后,会向注销所申请的资源,根6Spark DriverProgram ClusterManagerClusterManager据其自身的资源管理策略释放资源第章弹性分布式数据集3Spark RDD
一、填空题可容错性
1.
2.textFile窄依赖
3.磁盘
4..惰性5
二、判断题对
1.对
2.错
3.错
4.错
5.
三、选择题
1.B
2.A
3.D
4.B
5.ABCD
四、简答题
1.简述RDD提供的两种故障恢复方式血统方式主要是根据之间的依赖关系对丢失数据的进行数据恢复如果丢失数据的子在RDD RDD RDD进行窄依赖运算,则只需重新计算丢失数据的父的对应分区,不需要依赖其他的节点,并且在计算过程RDD中不会存在冗余计算;若丢失数据的子在进行宽依赖运算,则需要父的所有分区都要进行一次完RDD RDD整的计算,在计算过程中会存在冗余计算设置检查点方式本质上是将写入磁盘进行存储当在进行宽依赖运算时,只需要在运算的中RDDRDD间阶段设置一个检查点进行容错
2.简述RDD在Spark中的运行流程当创建完成后,会根据的转换操作构建出一个然后将1RDD ObjectsSparkContext RDDObjects DAG,提交给DAG DAG Schedulero将划分成不同的每个都是一个任务集合,每个2DAG SchedulerDAG Stage,Stage TaskSetTaskSet会由一组可以并行执行的任务组成会将传输给DAG SchedulerStage Task Schedulero通过与内部的交互,将中的根据其所需资源动态分配到3Task SchedulerClusterManagerStage Task合适的中若期间有某个传输失败,则会重新尝试传输并向Worker TaskTaskSchedulerTask,DAGScheduler汇报当前的传输状态若某个执行失败,则会根据失败情况进行相应的处理TaskTaskScheduler接收到后,把运行在中,每个相当于中的一个线程Worker TaskTask ExecutorTask ExecutorThread第章结构化数据处理模块4Spark SQL
一、填空题结构化数据
1.
2.SQL
3.RDD
4.toDF反射机制
5.
二、判断题对
1.错
2.对
3.错
4.对
5.
三、选择题
1.A
2.B
3.ABD
4.ABCD
5.C
四、简答题简述创建对象的两种方式
1.SparkSession通过代码来仓建1SparkSession.builder.master.appName.getOrCreate II中会默认创建一个名为的对象22Spark Shellspark SparkSession.简述内部组件的运行流程2Catalyst当用户提交语句、或寸,它们会经过组件进行分析组件分1SQL DataFrameDataset0Parser Parser析相关的执行语句,判断其是否符合规范,一旦分析完成,会创建并将包括表名、列名和数据类SparkSession,型等元数据保存在会话目录中发送给组件,此时的执行语句为未解析的逻辑计划其中会话目录用Analyzer于管理与元数据相关的信息组件根据会话目录中的信息,将未解析的逻辑计划解析为逻辑计划同时,组件2Analyzer Analyzer还会验证执行语句中的表名、列名和数据类型是否存在于元数据中如果所有的验证都通过,那么逻辑计划将被保存在缓存管理器中,并发送给组件Optimizer组件接收到逻辑计划后进行优化处理,得到优化后的逻辑计划优化后的逻辑计划会发3Optimizer送给组件Planner组件将优化后的逻辑计划转换为多个物理计划,通过成本模型进行资源消耗估算,在多个4Planner物理计划中得到选择后的物理计划并将其发送给组件Query Execution组件根据选择后的物理计划生成具体的执行逻辑,并将其转化为5Query ExecutionRDD第章分布式数据库5HBase
一、填空题分布式
1.
2.HDFS
3.RPC字典顺序
4.列标识
5.
二、判断题错
1..错2对
3.
4.对对
5.
三、选择题
1.B
2.B
3.D
4.ABCD
5.D
四、简答题简述数据模型的内容
1.HBase表示行键,是数据表中的每一行数据的唯一标识符Row KeyHBase表示时间戳,记录每次操作数据的时间Timestamp列由列族和列标识两部分组成,两者之间用“:分隔列族由多个列组成简述读写数据的流程
2.HBase写数据具体流程如下HBase1向发送请求,获取表所在的地址信息Client ZooKeeper META HRegionServer2将表所在的地址信息返回给ZooKeeper META HRegionServer Cliento3访问对应的获取表记录的元数据,从而找到表对应的所有Client HRegionServer,META HRegion,并根据存储数据的范围确定具体写入的目标Region HRegion4将表记录的元数据信息以及目标的信息返回给HRegionServer METAHRegion Cliento5将表记录的元数据信息以及目标缓存到的中,方便下次写数Client METAHRegion ClientCache据时可以直接访问6向发送数据,将得到的数据暂时存储在中,如果Client HRegionServerHRegionServer WALMemStore存储的数据达到刷写操作的阈值时,数据将被刷写到中StoreFile7一旦数据成功存储到中,将存储完成的信息返回给完成数据写入过StoreFile HRegionServerClient,程读数据具体流程如下HBase向发送请求,获取中表所在的地址信息1Client ZooKeeperHBase METAHRegionServer将表所在的地址信息返回给2ZooKeeperMETAHRegionServer Cliento访问对应的获取表记录的元数据,从而找到表对应的所有3Client HRegionServer,METAHRegion,并根据存储数据的范围确定要读取的目标Region HRegion0将表记录的元数据信息以及返回给4HRegionServer METAHRegion Cliento将接收到的表记录的元数据信息以及缓存到的中,方便下次5Client METAHRegion ClientCache读数据时访问向请求读取数据,和中查6Client HRegionServerHRegionServer4Block CacheMemStore StoreFile询目标数据,并将查到的所有数据进行合并将合并后的最终结果返回给7HRegionServer Cliento第章分布式发布订阅消息系统6Kafka
一、填空题异步处理、流量消峰
1.发布/订阅消息传递模式
2.
3.ZooKeeper可扩展性、容错性
4.拉取
5.
二、判断题错
1.错
2.错
3..错4对
5.
三、选择题
1.A
2.B
3.C
4.D
5.C
四、简答题.简述的优点
6.Kafka高吞吐,低延迟可以每秒处理数量庞大的消息,并且具有较低的延迟1Kafka可扩展性是一个分布式系统,用户可以根据实际应用场景自由动态地扩展服务器2Kafka Kafka持久性可以将消息存储在磁盘上,以确保数据的持久性3Kafka容错性会将数据备份到多台服务器中,即使集群中的某一台服务器宕机,也不会影响4Kafka Kafka整个系统的功能支持多种语言支持、、、等多种语言,这使得开发人员在不同语言环境5Kafka JavaScala PHPPython下使用更加便捷Kafka简述的工作流程
7.Kafka生产者生产消息过程从中获取信息,以及指定中角色为的1Producer ZooKeeperBroker Kafka Topic Leader Partitiono将消息发送给角色为的与此同时角色为的会将消息写入2Producer Leader Partition,Leader Partition到自身的日志文件中角色为的从角色为的中获取消息,将消息写入自身的日志文件中,3Follower PartitionLeader Partition完成复制操作角色为的将消息写入自身的日志文件后,会向角色为的发送成功复4Follower PartitionLeader Partition制消息的信号角色为的收到|角色为的发送的复制消息后,同样向发送5LeaderPartitionFollower PartitionProducer消息写入成功的信号,此时消息生产完成消费者消费消息的过程从中获取指定中角色为的和信息1Consumer ZooKeeperKafkaTopic LeaderPartitionBroker根据消息的向中角色为的发送请求消费消息2Consumer offset,Topic LeaderPartition中角色为的根据将对应的消息返回给进行消费3TopicLeaderPartition offsetConsumer消费消息后,记录自己的消费状态,将已消费消息的保存在内部特殊的4Consumer ffsetBroker中,以便下次消费消息时能够从正确的位置开始消费Topic第章实时计算框架7Spark Streaming
一、填空题无界的数据流
1.容错性、易整合性
2.粗粒度
3.
4.DStream
二、判断题
5.RDD对
1.对
2.对
3.错
4.对
三、选择题
5.
1.C
2.D
3.AC
4.A
四、简答题
5.ABCD简述的工作原理
1.Spark Streaming的工作原理主要涉及获取数据、处理数据和存储数据当从数据源获取Spark StreamingSpark Streaming数据之后,则可以使用诸如、、和等算子进行复杂的计算处理,最后将处理的结果存map reducejoin window储到、或HDFS DatabasesDashboardso简述的编程模型
2.Spark Streaming编程模型主要由输入操作、转换操作和输出操作构成从数据源实时接收Spark StreamingSpark Streaming输入的数据流并生成这个可以直接输出到存储系统,也可以根据实际业务需求利用算子对DStream,DStream进行转换,从而生成一个或多个作为转换结果,然后将转换结果作为数据流输出到存储系统DStream DStream第章流计算引擎8Structured Streaming
一、填空题
1.Spark SQL卓越的性能、多语言支持
2..文件数据源3处理时间、事件时间
4.滚动窗口、会话窗口
5.
二、判断题对
1.对
2.错
3..错4错
5.
三、选择题
1.C
2.D
3.ABCD
4.D
5.C
四、简答题简述的特点Structured Streaming统一的编程范式1由于是基于的流处理引擎,所以和共用大部分、Structured StreamingSpark SQLSpark SQLDataset API和语句,这对熟悉的用户很容易上手,代码也十分简洁同时数据的批处理和DataFrameAPI SQLSpark SQL流处理之间还可以共用代码,不需要开发两种不同数据处理的代码,提高了开发效率卓越的性能2在与共用和的同时,可以利用引Structured StreamingSpark SQLDataset APIDataFrame APISpark SQL擎来优化查询执行计划,充分发挥优化器对查询优化的优势这使得查询能够更有效地执行,减少Catalyst了不必要的计算和数据移动多语言支持3支持多种编程语言,包括、和这样,用户可以选择他们熟悉或Structured StreamingScala JavaPython R适合他们需求的编程语言来构建程序第章机器学习库9Spark MLlib
一、填空题
1.Scala有监督学习、半监督学习
2.
3.dense本地向量
4.
5.Summarizer
二、判断题对
1.对
2.对
3.对
4.对
5.
三、选择题
1.C
2.D
3.A
4.D
5.AC
四、简答题简述的工作流程Spark MLlib在处理数据时的流程分为数据准备阶段、训练模型评估阶段以及部署预测阶段Spark MLlib在数据准备阶段,需要将数据采集系统采集的原始数据进行数据清洗,然后对清洗后的数据提取特征字段与标签字段,从而生产机器学习所需的数据格式。
个人认证
优秀文档
获得点赞 0