云计算技术-2025sp-回忆版

云计算技术 2025年春季学期 的回忆版真题,来源于计算机速通之家 | QQ 群号:468081841

本文连载于云计算技术-2025sp-回忆版 | HeZzz.

🙇‍♂️🙇‍♂️🙇‍♂️时间仓促,有不足之处烦请及时告知。邮箱hez2z@foxmail.com 或者在 速通之家 群里 @9¾

IaaS, PaaS, SaaS

IaaS, PaaS, SaaS: What’s the difference? | IBM

What helped you learned the differences between IaaS, PaaS and SaaS? | Reddit

Q: IaaS, PaaS, SaaS 定义和对资源利用以及用户交互之间的差别 (5 分)

  • 基础设施即服务(Infrastructure as a Service, IaaS)
    在这个层面,服务提供商提供的基本单元就是服务器。
  • 平台即服务(Platform as a Service, PaaS)
    在这个层面,服务提供商提供的是经过封装的IT能力,或者是一些逻辑的资源,例如数据库、文件系统和应用运行环境等。主要面向软件开发者。
  • 软件即服务(Software as a Service, SaaS)
    在这个层面,提供的基本单元是应用软件。这类服务既有面向普通用户的,诸如 Google Calendar 和 Gmail,有直接面向企业团体的,用于帮助处理工资单流程、人力资源管理、协作、客户关系管理和业务合作伙伴关系管理等,例如Salesforce.com 和 SugarCRM。这些 SaaS 提供的应用程序减少了客户安装与维护软件的时间及其对技能的要求,并且可以通过按使用付费的方式来减少软件许可证费用的支出。

计算范式结构

Q: 云体、云栈、云计算、云平台定义及关系 (5 分)

A:

云体是云计算的物质基础,是云计算所用到的资源集合。它是构成云计算的软硬件环境,如网络、服务器、存储器、交换机等,通过网络连接在一起。某些情况下,广义的云体也可以包括数据中心及其辅助设施如电力、空调、机架、冷却等系统。鉴于当前的云计算都是基于数据中心来进行,云体就是数据中心。
云栈又称云平台,是在云上面建造的运行环境。它能够支持应用程序的发布、运行、监控、调度、伸缩,并为应用程序提供辅助服务的机制,如访问控制和权限管理等。如微软的WindowsAzure、谷歌的 App Engine、VMWare 的 Cloud Foundry都是云平台。

虚拟化技术

Q: 硬件辅助虚拟化、全虚拟化、半虚拟化技术定义及差别 (10 分)

A:

硬件辅助虚拟化是指利用处理器提供的虚拟化扩展(如 Intel VT-x 和 AMD-V)来提高虚拟化性能和效率的技术。通过硬件辅助虚拟化,虚拟机监视器(Hypervisor)可以更有效地管理虚拟机的资源分配和调度,从而减少虚拟化开销,提高虚拟机的运行速度。

全虚拟化是利用虚拟机监视器(Hypervisor),完全模拟底层硬件,使得虚拟机可以运行未经修改的操作系统。全虚拟化通过二进制翻译或硬件辅助虚拟化技术来实现对虚拟机的隔离和资源管理。全虚拟化的优点是兼容性好,可以运行各种操作系统,但性能开销较大。

半虚拟化是指对操作系统进行修改,使其能够直接与虚拟机监视器(Hypervisor)进行交互,从而提高虚拟化性能的技术。通过半虚拟化,操作系统可以更高效地访问底层硬件资源,减少虚拟化开销。

他们之间的主要差别是

  • 半虚拟化需要对操作系统进行修改,而全虚拟化不需要。
  • 全虚拟化的性能开销较大,而半虚拟化的性能较好。
  • 硬件辅助虚拟化可以应用于全虚拟化和半虚拟化,提高它们的性能和效率。

软件定义网络 SDN

Q: SDN 图及解释 (10 分)

A:

SDN

软件定义网络分为数据层、控制层、应用层三层。数据层负责报文转发,由网络底层的物理转发设备组成;控制层由网络控制器实现,负责将设备的分布状态抽象成全网视图,以便众多应用能够通过全网信息进行网络的统一配置;应用层提供具体的业务服务。

数据层与控制层之间的接口称为南向接口,南向接口确保转发设备完成状态上报、数据转发的任务;应用层与控制层的接口是北向接口,北向接口确保应用层业务掌握全网信息,并通过软件编程方式调用所需网络资源,方便网络配置和应用部署等业务的快速推进。

控制层内部的接口称为东西向接口,用于各控制器间的消息交互。网络控制器作为软件定义网络的核心组成,负责在网络设备与上层应用之间提供桥梁作用,为应用层提供编程接口使得上层应用能够操作底层网络设备;同时屏蔽底层网络设备,开放数据层的可编程能力。

轻量化虚拟化技术

Q: 轻量化虚拟化技术是什么,相较于传统虚拟化技术的性能、资源开销、安全性如何 (10 分)

定义:轻量化虚拟化技术(Lightweight Virtualization Technology),通常指的是容器化技术,如 Docker。与传统的虚拟化技术(如 VMware 和 Hyper-V)相比,轻量化虚拟化技术通过共享宿主机的操作系统内核,实现了更高效的资源利用和更快的启动速度。

层面 传统虚拟化技术 轻量化虚拟化技术
性能 较低,存在较大的性能开销 较高,接近原生性能
资源开销 较大,需要分配大量的资源给每个虚拟机 较小,共享宿主机的资源
安全性 较高,虚拟机之间隔离性强 较低,容器之间隔离性较弱

数据存储系统

Q: 结构化,半结构化,非结构化数据的定义及其对应适用的文件存储系统 (10 分)

结构化存储的历史非常古老,典型的场景就是事务处理系统或者关系型数据库(RDBMS)。
传统的结构化存储都是从单机做起的,例如大家耳熟能详的 MySQL。MySQL 的成长史就是
互联网的成长史。除了 MySQL 之外,PostgreSQL 也是近年来势头非常强劲的一个 RDBMS。
传统的结构化存储系统强调以下内容。

  1. 结构化的数据(例如关系表);
  2. 强一致性(例如银行系统,电商系统等场景);
  3. 随机访问(索引、增删查改、SQL)

与结构化存储不同的是,非结构化存储强调的是高可扩展性,典型的系统就是分布式文件系统。分布式文件系统也是一个很老的研究话题,例如 20 世纪 70 年代的 Xerox Alto,80 年代的 NFS、AFS,90 年代的 xFS 等。然而,这些早期的分布式文件系统只是起到了网络磁的作用,其最大的问题就是不支持容错和错误恢复。而 Google 在 2003 年 SOSP 会议上推出的 GFS(Google File System)则走出了里程碑的一步,其开源实现对应为 HDFS。

半结构化存储的提出是为了解决结非结构化存储系统随机访问性能差的问题。我们通常会听到一些流行的名词,例如 NoSQL、Key-Value Store,包括对象存储等。这些都属于半结构化存储研究的领域,其中以 NoSQL 的发展势头最为强劲。NoSQL 系统既有分布式文件系所具有的可扩展性,又有结构化存储系统的随机访问能力(例如随机操作),系统在设计时通常选择简单键值(K-V)进行存储,抛弃了传统 RDBMS 里复杂 SQL 查询及 ACID 事务。

MapReduce

Q:

MapReduce 各阶段输出结果,数据操作 (20 分)

某个 MapReduce 程序的输入是 (key,value) 集合,其中 value 是整数,key 的取值对 Map 函数没有影响。

Map 函数的功能是将输入的整数 value 转换为 (p,value) 列表输出,其中 p 是 value 的质因数。如,Map(〈key,12〉)的输出为(2,12),(3,12)。

Reduce 函数提供汇总功能,Reduce(〈p,value_1,value_2,⋯,value_k〉)的输出为〈p,value_1+value_2+⋯+value_k〉。

【说明】质因数是一个数的约数,并且是质数。如,12=2×3×2,2 和 3 就是 12 的质因数。

  1. 本地聚合的作用和它跟 Reducer 的区别 (10 分)
  2. 让你写出三个阶段的 KV 对和逻辑操作。 (10 分)

这部分你就看http://hez2z.github.io/2025/11/29/云计算技术-25fa-zb学习通作业/#MapReduce

Hadoop (10)

Q:

  1. HDFS 基于块存储为什么不能用来存储大量小文件,百度网盘等是用什么策略处理这些文件的。 (5 分)
  2. 列举常见的元数据类型,并简述 DataNode 和 NameNode 是怎么存储和管理这些元数据信息的 (5 分)

A:

  1. 因为 HDFS 是基于块存储设计的,每个文件都会被划分为多个块进行存储。对于大量小文件来说,每个文件可能只占用一个块的一小部分,这会导致存储空间的浪费和 NameNode 负载过高的问题。百度网盘等系统通常采用合并小文件的方法,将多个小文件合并成一个大文件进行存储,从而减少 NameNode 的元数据管理压力,提高存储效率。
  2. 常见的元数据类型有 NameNode,DataNode 等。NameNode 负责存储文件系统的目录结构和文件到块的映射关系,而 DataNode 负责存储实际的数据块。NameNode 通过内存中的数据结构(如哈希表)来管理元数据信息,并定期将元数据持久化到磁盘上以防止数据丢失。DataNode 则通过心跳机制向 NameNode 汇报其状态和存储的块信息,确保数据的一致性和可用性。

HBase (20)

Q:

  1. HMaster 和 HRegionServer 的职责划分和交互逻辑 (10 分)
  2. 设计相对应的 HBase 表 (10 分)

A:

  1. HMaster 负责管理 HBase 集群的整体运行,包括监控 RegionServer 的状态、分配和重新分配 Region、处理负载均衡等任务。HRegionServer 则负责实际的数据存储和处理,管理具体的 Region,处理客户端的读写请求。
  2. TODO: 还没找到 HBase 表的题目。

In standalone mode HBase runs all daemons within this single JVM, i.e. the HMaster, a single HRegionServer, and the ZooKeeper daemon. Go to http://localhost:16010 to view the HBase Web UI.

https://hbase.apache.org/book.html