《Spark编程基础期末试卷2答案.doc》由会员分享,可在线阅读,更多相关《Spark编程基础期末试卷2答案.doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Spark编程基础期末试卷2答案_学年 第_学期_课程 期末考试 试卷(B) 共 页 (闭卷考试)适用学生:_ 学院_专业_级_班 姓名_学号_题目一二三四总分得分一单选题:本大题共20小题,每小题2分,共40分。1. B 2. A 3. D 4. A 5. B 6. D 7. C 8. C 9. B 10. D 11. B 12. B 13. C 14. D 15. C 二填空题:本大题有9小题,共10空,每空2分,共20分。1. 纯面向对象的、函数式编程2. DAG 3.内存4.对象5. Tokenizer6. Partition7. FIFO8. Lineage9.堆内内存(On-hea
2、p memory)三简答题:本大题有5小题,每小题6分,共30分。1. spark的有几种部署模式,每种模式特点?1)本地模式Spark不一定非要跑在hadoop集群,可以在本地,起多个线程的方式来指定。将Spark应用以多线程的方式直接运行在本地,一般都是为了方便调试,本地模式分三类 local:只启动一个executor localk:启动k个executor local:启动跟cpu数目相同的 executor2)standalone模式分布式部署集群, 自带完整的服务,资源管理和任务监控是Spark自己监控,这个模式也是其他模式的基础,3)Spark on yarn模式分布式部署集群,
3、资源和任务监控交给yarn管理,但是目前仅支持粗粒度资源分配方式,包含cluster和client运行模式,cluster适合生产,driver运行在集群子节点,具有容错功能,client适合调试,dirver运行在客户端4)Spark On Mesos模式。官方推荐这种模式(当然,原因之一是血缘关系)。正是由于Spark开发之初就考虑到支持Mesos,因此,目前而言,Spark运行在Mesos上会比运行在YARN上更加灵活,更加自然。2. Spark中Worker的主要工作是什么?答:主要功能:管理当前节点内存,CPU的使用状况,接收master分配过来的资源指令,通过ExecutorRun
4、ner启动程序分配任务,worker就类似于包工头,管理分配新进程,做计算的服务,相当于process服务。需要注意的是:1)worker会不会汇报当前信息给master,worker心跳给master主要只有workid,它不会发送资源信息以心跳的方式给mater,master分配的时候就知道work,只有出现故障的时候才会发送资源。2)worker不会运行代码,具体运行的是Executor是可以运行具体appliaction写的业务逻辑代码,操作代码的节点,它不会运行程序的代码的。3. 什么是RDD宽依赖和窄依赖?RDD和它依赖的parent RDD(s)的关系有两种不同的类型,即窄依赖(
5、narrow dependency)和宽依赖(wide dependency)。1)窄依赖指的是每一个parent RDD的Partition最多被子RDD的一个Partition使用2)宽依赖指的是多个子RDD的Partition会依赖同一个parent RDD的Partition4. spark有哪些组件? 答:主要有如下组件:1)master:管理集群和节点,不参与计算。 2)worker:计算节点,进程本身不参与计算,和master汇报。 3)Driver:运行程序的main方法,创建spark context对象。 4)spark context:控制整个application的生命
6、周期5. Spark为什么比mapreduce快?答:1)基于内存计算,减少低效的磁盘交互;2)高效的调度算法,基于DAG;3) 容错机制Linage,精华部分就是DAG和Lingae四程序题:本大题有2小题,每小题10分,共20分。使用Spark编程对E:hello.txt中的单词进行统计,完成程序中的代码。 1.val sc = new SparkContext(conf) 2.val word: RDDString = file.flatMap(_.split(,) 3.val wordOne: RDD(String, Int) = word.map(_,1) 4.val wordCount: RDD(String, Int) = wordOne.reduceByKey(_+_) 5.val sortRdd: RDD(String, Int) = wordCount.sortBy(tuple = tuple._2,false)试卷部分:3/3