云计算与云存储 期中试卷

打印 上一主题 下一主题

主题 843|帖子 843|积分 2529

( 2022 -2023  学年第 1 学期)

   
信息工程学院     班(年)级 课程   云计算与云存储

  
  
标题






总分
得分







阅卷人







  
  一、单项选择题(每题 3 分,共 21 分)

  
  1.OpenStack 是一个由NASA(美国国家航空航天局)和 Rackspace 互助研发并发起的,以 Apache 允许证授权的自由软件和开放源代码项目。openstack 技术属于()架构的实现。(A )
  (A)底子设置即服务;       (B)平台即服务;
  (C)软件即服务;           (D)硬件即服务;
  2.云端资源只给两个或者两个以上的特定单位组织内的员工使用,除此之外的人和机构都无权租赁和使用云端计算资源,例如,深圳地区的酒店联盟组建的关于酒店方面的云服务,这种云服务属于(B)
  (A)私有云;           (B)社区云;
  (C)公有云;           (D)混合云;
  3.下列哪个支持将 RDD  数据恒久地保存在磁盘文件中进行数据重用      (B)
  (A)cache() ;          (B)checkpoint();
  (C)persist ();           (D)memory();
  4.软件架构的演变过程很漫长,履历了几十年发展,主要履历了从()的过程。(A)
  (A)单体架构-分布式架构-SOA 架构-微服务架构
  (B)分布式架构-单体架构-微服务架构- SOA 架构
  (C)单体架构-微服务架构-分布式架构-SOA 架构
  (D)分布式架构- SOA 架构-单体架构-微服务架构
  
  5.当必要比力多个服务器在不同长度的时间段内的性能时,由于不同组数据的丈量尺度相差太大,或者数据量纲的不同,使用()指标可以较好地消除丈量尺度和量纲对结果的影响。      ( C)
  (A)平均值;             (B)方差;
  (C)变异系数;           (D)标准差;
  
  6.软件系统的高可靠性(也称为可用性,英文描述为 HA,High Available)里有个衡量其可靠性的标准——9 的个数。5 个 9 表示在该软件系统在连续运行 1 年时间里最多大概的业务停止时间是 ( D)
  (A)87.6  小时;          (B)8.76 小时;
    (C)52.6 分钟;           (D)5.26 分钟;
  
  7.将键值对 RDD 中具有相同键的元素进行分组,可以使用什么操作:   (B)
  (A)sortByKey();                            (B)groupByKey();
  (C)reduceByKey();                       (D)keys();
  
  
  二、多项选择题(每题 4 分,共 8 分)

  1.Spark 的设计遵循“一个软件必要满足不同应用场景”的理念,逐渐形成了一套完整的生态系统,可以支持以下哪些操作计算:     (ABCD)
  (A)图计算(GraphX);               (B)SQL 即席查询(Spark SQL);
  (C)机器学习(MLlib);             (D)流式计算(Spark Streaming);
  2.spark 的部署模式有:       (ABCD)
  (A)当地模式;                           (B)standalone 模式;
  (C)spark on yarn 模式;            (D)mesos 模式;
  
  

  三、简答题(每题 10 分,共 60 分)

  

  • 1. 云计算技术主要有三个显著特点:资源池化,弹性伸缩,安全可靠,分别对这三个特点进行简要的描述(10 分)。
  

  • 资源池化: “云”具有相称的规模,支持用户在任意位置、使用各种终端获取应用服务。所哀求的资源来自“云”,而不是固定的有形的实体。
  • 云计算不针对特定的应用,同一个“云”可以同时支撑不同的应用运行, “云”的规模可以动态伸缩,满足应用和用户规模增长的必要。
  • 安全可靠:“云”使用了数据多副本容错、计算节点同构可交换等措施来保障服务的高可靠性,使用云计算比使用当地计算机可靠。
  
  

  • 2. RDD 之间的依赖关系可以分为窄依赖和宽依赖,请对窄依赖和宽依赖分别进行先容并举例说明(10 分)。
          窄依赖:是指每个父RDD的一个Partition最多被子RDD的一个Partition所使用,例如map、                          filter、union等操作都会产生窄依赖;(独生后代)
          宽依赖:是指一个父RDD的Partition会被多个子RDD的Partition所使用,例如groupByKey、                         reduceByKey、sortByKey等操作都会产生宽依赖;(超生)
  
   

  • 3. RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处置惩罚模子。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的聚集。请简要先容 RDD 的 5 个核心属性(10 分)
  
  

  • RDD是由一系列partition组成(block块对应partition),textFile底层调用的是MR读取hdfs上的数据的方法默认一个block块对应一个split,split的大小和block大小同等,可以自己调整。
  • 函数作用在每一个partition(split)上
  • RDD之间有一系列的依赖关系(容错机制)。
  • 分区器作用在K,V格式的RDD上。
  • 提供一系列最佳的计算位置。按照“移动数据不如移动计算”的理念,Spark在进行任务调理的时候,会尽大概地将计算任务分配到其所要处置惩罚数据块的存储位置。
  
  

  • 4.  RDD  通过缓存或者检查点技术将前面的计算结果持久化,,并供背面的 RDD 反复用。请简要说明cache,persist 和checkpoint 这 3 种持久化技术的区别。(10 分)。
  
  

  • Cache 缓存只是将数据暂时保存起来。Cache 缓存的数据通常存储在内存,可靠性低。不切断血缘依赖,只会在血缘关系中添加新的依赖,一旦出现问题,可以重头读取数据。
  • persisit:将数据暂时存储在磁盘文件中进行数据重用,涉及到磁盘IO,性能较低,但是数据安全。假如作业执行完毕,暂时保存的数据文件就会丢失。
  • CheckPoint:将数据恒久地保存在磁盘文件中进行数据重用,涉及到磁盘IO,性能较低,但是数据安全。为了包装数据安全,一般情况下会把当前必要持久化的RDD重新创建并保存。
  • Checkpoint 检查点会切断血缘依赖,重新建立新的血缘关系。
  • cache 机制是每计算出一个要 cache 的 partition 就直接将其 cache 到内存了。但 checkpoint是比及 job 竣事后另外启动专门的 job 去完成 checkpoint 。
  
  

  • 5. Hadoop 的 MR 框架和Spark 框架都是数据处置惩罚框架,请简要说明它们关系,以及我们在使用时候如何选择 (10 分)。
  

  • Spark把运算中数据放到内存中,迭代计算服从会更高;MR的中心结果必要落地磁盘,以是大量的磁盘IO操作,会影响性能
  • MR是基于进程,Spark是基于线程。MR是多进程单线程模子,而Spark是多进程多线程模子;此外,Spark是粗粒度资源申请模式,而MR是细粒度资源申请模式
  • Spark容错性高,它通过弹性分布数据集RDD来实现高容错,RDD是一组分布式存在节点内存中只读性的数据,这些聚集是弹性,某一部门数据丢失或堕落,可以通过整个数据集的计算流程的血缘来实现重建;MR的容错必要重新计算,成本高。
  • Spark更加通用,Spark提供了transformation和action这两大类多功能API,另外还有流式处置惩罚SparkStreaming模块,机器学习、图计算;MR只提供Map和Reduce方法,没有其他模块,MR其实是有机器学习的基本上没有人使用。
  • Spark框架的生态更加丰富,起首由RDD、血缘Lineage,执行时有有向无环图DAG,Stage分别等等,很多时候Spark作业必要在不同场景上运行,此时可以根据不同场景进行调优;MR计算框架相对简朴,对性能也相对较弱,单运行稳定,适合长时间在后台运行。
  
  


  • 6. Spark 包罗 5 大核心模块,请对每个模块进行简要先容(10 分)。
        1、Spark Core:包罗了 Spark 最核心与底子的功能,为其他 Spark 功能模块提供了核心层                 的支撑,可类比 Spring 框架中的 Spring Core。
        2、Spark SQL:官方文档的先容如下图,Spark SQL 实用于结构化表和非结构化数据的查                 询,并且可以在运行时自适配执行计划,支持 ANSI SQL(即标准的结构化查询语言)。
        3、Spark Streaming:是 Spark 平台上针对实时数据进行流式计算的组件,而流式数据指的              是实时或接近实时的时效性处置惩罚的大数据流,常见的流式数据处置惩罚使用Spark、Storm和                  Samza等框架。
        4、Spark MLlib:是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模子评估、数据                 导入等额外的功能,还提供了一些更底层的机器学习原语。
        5、Spark GraphX:是 Spark 面向图计算提供的框架与算法库。

四、编程题 (每题 11 分,共 11 分)

1.有一组键值对("Spark",5),("Hadoop",3),("Scala",4),("Spark",3),("Hadoop",1),键值对的 key 表示图书名称,value 表示某天图书的销量,编程计算每个键对应的平均值,即计算每种图书当天的平均销量,将每本图书的平均销量打印到控制台。(10 分)

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    val sparkConf =new SparkConf().setMaster("local").setAppName("WordCount")
    val sc= new SparkContext(sparkConf)
    val datas: RDD[(String,Int)] = sc.makeRDD(
      List(("Spark",5),("Hadoop",3),("Scala",4),("Spark",3),("Hadoop",1)),5)
    val a = datas.groupByKey() //按key分组 (张三,CompactBuffer(78, 80, 88))
      .map(x => {
        var num = 0
        var sum = 0
        for (i <- x._2) {
          sum = sum + i
          num = num + 1
        }
        val avg = sum / num
        (x._1, avg)
      })
    a.collect.foreach(x => println(x._1+"\t"+x._2))
    //关闭毗连
    sc.stop()
  }}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表