面试常见问题——云计算基础

面试常见问题——云计算基础

--------分割线:本博客于2020年5月26日进行了一次勘误更新------

目录:

  1. 云计算按照服务类型分类
  2. 云计算技术体系结构分层
  3. MapReduce与传统的分布式程序设计对比
  4. Chubby的设计目标、Paxos算法作用
  5. MapReduce与实时数据处理
  6. GFS容错措施
  7. 列存储优点
  8. 私有IP、公有IP和弹性IP的区别
  9. Share-Nothing架构的特点
  10. 非关系型数据库的可扩展性问题
  11. 微软云计算平台的组成及作用
  12. SQL Azure和SQL Server的相同点和不同点
  13. Windows Azure存储服务的存储方式和存储对象
  14. Hadoop2.0安全机制
  15. 虚拟化技术的作用
  16. 服务器虚拟化、存储虚拟化和网络虚拟化的实现方式

1、云计算按照服务类型可以分为哪几类

  • 云计算定义:狭义上讲,云计算就是一种提供资源的网络。广义上讲,云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。
  • 特点:
    • 虚拟化技术
    • 动态可扩展
    • 按需部署
    • 可靠性高
    • 性价比高
    • 灵活度高
  • IaaS(Infrastruture as a Service),将基础设施作为服务
    • 将硬件设备等基础资源封装成服务供用户使用,允许用户动态申请或释放节点,按使用量计费。IaaS由公众共享,具有更高的资源使用效率;
  • PaaS(Platform as a Service),将平台作为服务
    • 提供用户应用程序的运行环境,Paas自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配合问题,用户必须使用特定的编程环境并遵照特定的编程模型。
  • SaaS(Software as a Service),将软件作为服务
    • 将某些特定应用软件功能封装成服务,只提供某些专门用途的服务供应用调用。

2、云计算技术体系结构可以分为哪几层?

  • 物理资源层:
    • 包括计算机、存储器、网络设施、数据库和软件等;
  • 资源池层:
    • 将大量相同类型的资源构成同构或接近同构的资源池,如计算资源池、数据资源池等;
  • 管理中间件层:
    • 负责对云计算的资源进行管理,并对众多应用任务进行调度,使资源能够高效、安全地为应用提供服务,主要包括四个方面的管理:
      • 用户管理:账号管理、用户环境配置、用户交互管理、使用计费
      • 任务管理:映像部署和管理、任务调度、任务执行、生命期管理
      • 资源管理:负载均衡、故障检测、故障恢复、监视统计
        • 负载均衡的含义:
          • 大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;
          • 单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。
      • 安全管理:身份认证、访问授权、综合防护、安全审计
        • 安全审计的含义:通过一定的策略,利用记录和分析历史操作事件发现系统漏洞并改进系统的漏洞和安全
  • SOA构建层(面向服务的体系结构):
    • 将云计算能力封装成标准的Web Services服务,并纳入SOA体系进行管理和使用,包括服务接口、服务注册、服务查找、服务访问、服务工作流等等。

3、MapReduce与传统的分布式程序设计相比有何优点

  • MapReduce封装了并行处理、容错处理、本地化计算、负载均衡等细节
  • 提供了一个可以把大量计算自动并发和分布执行的接口
  • 具有较好的通用性
  • 通过Map(映射)、Reduce(归约)的编程模式,适合非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习
  • 分布式程序设计定义:指一个程序由若干个可独立执行的程序模块组成,这些相互关联的程序模块分布于一个分布式计算机系统的多台计算机上,通过通信协调地完成一个共同的计算任务。

4、Chubby的设计目标是什么?Paxos算法在Chubby中起什么作用

  • 设计目标:解决分布式系统中的一致性问题。
  • Paxos算法是基于消息传递的一致性算法,Chubby内部一致性问题的实现用到了Paxos算法,保证系统中初始状态相同的各个节点在执行相同的操作序列时,看到的指令序列是完全一致的,并且最终得到完全一致的结果。
  • 主要作用有如下三个过程:
    • 选择一个副本成为协调者。
    • 协调者从客户提交的值中选择一个,然后通过一种被称为accept的消息广播给所有的副本,其他的副本收到广播之后,可以选择接受或拒绝这个值,并将决定结果反馈给协调者。
    • 一旦协调者收到大多数副本的接受消息后,就认为达到了一致性,接着协调者向相关的副本发送一个commit消息。
  • 粗粒度权限管理:对资源类型的权限管理,比如菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮,如不同职位的人员可以访问不同的页面
  • 细粒度权限管理:对资源实例的权限管理,即数据级别的权限管理,如不同职位的人员可以访问数据库的不同部分。

5、为什么MapReduce不适合实时数据处理

  • 因为MapReduce作为一种面向批处理的框架,计算速度比较慢,计算出来的中间结果、输出的结果也会到磁盘上,读写磁盘就意味着性能不能达到实时的要求。而很多时候用户需要实时的数据交互,由此Dremel实时交互式查询系统应运而生。

6、GFS采取了哪些容错措施来确保整个系统的可靠性

  • Master容错:
    • GFS通过操作日志来对命名空间与映射表提供容错功能,而chunk副本的位置信息直接保存在Chunk Server上,由Chunk Server向Master注册时自动生成。
    • 同时GFS提供了Master远程的实时备份。
  • Chunk Server容错:
    • GFS采用副本的方式实现Chunk Server的容错,每一个Chunk默认有三个副本,分布存储在不同的Chunk Server上。

7、相比于行存储,列存储有哪些优点

  • 查询时只有涉及到的列会被读取
  • 投影很高效
  • 列存储更利于数据的压缩
  • 任何列都能作为索引

8、私有IP、公有IP和弹性IP的区别

  • 公有IP:由ISP分配,公有IP地址和特定的实例相对应,在某个实例终结或被弹性IP地址取代之前,公有IP地址会一直存在,实例通过这个公有IP地址和外界进行通信;
  • 私有IP:非注册地址,专门为组织机构内部使用,和某个特定的实例相对应,由DHCP协议(动态主机配置协议)分配产生;
  • 弹性IP:在EC2启动实例时,自动地为每个实例分配一个私有IP地址和一个公有IP地址。弹性IP地址是与用户的账号绑定的,只要用户不改变账号或主动释放,弹性IP地址是不会发生变化的,当正在运行的实例出现故障时,用户只需要将弹性IP地址重新定位到新的实例上,而不需要修改DNS解析器中的IP地址和DNS名称的映射关系,这大大提高了系统的容错能力,保证了服务的不间断性。

9、简述Share-Nothing架构的特点

  • 每台数据库服务器都是完全独立的计算机系统,通过网络连接,不共享任何资源,具有高扩展性,当数据库处理能力不足时,可以通过增加服务器数量来提高处理能力,同时多个服务器也增加了数据库并发访问的能力。
  • 数据库构架设计中主要有Shared Everthting、Shared Nothing、和Shared Disk:
    • Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力是最差的,典型的代表SQLServer
    • Shared Disk:各个处理单元使用自己的私有 CPU和Memory,共享磁盘系统。典型的代表Oracle Rac, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。
    • Shared Nothing:各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表DB2 DPF和Hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。
  • 我们常说的 Sharding 其实就是Share Nothing架构,它是把某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,具备共同的schema,比如MySQL Proxy和Google的各种架构,只需增加服务器数就可以增加处理能力和容量。

10、非关系型数据库是如何解决可扩展性问题的

  • 通过增加服务器数量来不断提高存储规模
  • 可扩展性:通过增加资源提高整个系统吞吐量的能力

11、微软云计算平台包括几部分?每部分的作用是什么

  • Windows Azure:
    • 微软云计算技术的核心,提供了一个在微软数据中心服务器上运行应用程序和存储数据的Windows环境。
  • SQL Azure:
    • 云中的关系数据库,为云中基于SQL Server的关系型数据提供服务。
  • Windows Azure AppFabric:
    • 为在云中或本地系统中的应用提供基于云的基础架构服务,部署和管理云基础架构。
  • Windows Azure MarketPlace:
    • 为购买云计算环境下的数据和应用提供在线服务。

12、阐述SQL Azure和SQL Server的相同点和不同点

  • 相同点:
    • 与本地的SQL Server类似,SQL Azure为基于Transact-SQL的数据库访问提供了一个TDS(表格数据流)接口,这使得应用程序像使用SQL Server一样使用SQL Azure数据库。
  • 不同点:
    • 管理方面:
      • SQL Azure将逻辑上的管理与物理上的管理分离了出来。SQL Azure强调物理管理,能够自动复制所有存储的数据以提供高可用性,同时SQL Azure还可以管理负载均衡、故障转移等功能;
      • SQL Azure数据为自动备份,而SQL Server拥有对数据的备份机制;
      • 用户不能管理SQL Azure的物理资源。
    • 服务提供方面:
      • SQL Server的部署,需要准备和配置所需要的硬件和软件,这些工作一般由DBA或IT部门完成;
      • SQL Azure的部署,均由SQL Azure服务程序来执行。
    • Transact-SQL支持方面:
      • SQL Server可以通过Transact-SQL语句的参数指定文件组或物理文件的路径;
      • SQL Azure不能指定路径,由微软进行物理资源的管理。
    • 特征和支持方面:
      • SQL Azure不支持SQL Server的所有特征和数据类型;
      • SQL Azure提供物理管理,会锁住任何试图操作物理资源的命令语句。

13、Windows Azure存储服务提供了几种类型的存储方式?阐述每种存储方式主要的存储对象

  • Blob类型:存储二进制数据,可以存储大型的无结构数据,能够满足海量数据存储需求;
  • Table类型:提供更加结构化的数据存储;
  • Queue类型:和微软消息队列相近,用来支持在Windows Azure应用程序组件之间进行通信;
  • File类型:通过装载的共享在应用程序组件之间共享文件数据,本地应用程序组件之间共享文件数据,本地应用程序可通过文件存储API来访问共享中的文件数据。

14、简述Hadoop2.0安全机制

  • 一般而言,系统安全机制由认证(authentication)和授权(authorization)两大部分构成。认证就是简单地对一个实体的身份进行判断;而授权则是向实体授予对数据资源和信息访问权限的决策过程。
  • Hadoop 2.0中的认证机制采用Kerberos和Token两种方案,而授权则是通过引入访问控制列表(Access Control List,ACL)实现的。
  • 在Hadoop中,Client与NameNode和Client与ResourceManager之间初次通信均采用了Kerberos进行身份认证,之后便换用Delegation Token以较小开销,而DataNode与NameNode和NodeManager与ResourceManager之间的认证始终采用Kerberos机制,默认情况下,Kerberos认证机制是关闭的,管理员可通过将参数hadoop.security.authentication设为“kerberos”(默认值为“simple”)启动它。
  • Kerberos的职责在于鉴定登录用户(服务)是否是其声称的用户(服务),Hadoop则决定这个用户到底拥有多少权限。

15、虚拟化技术在云计算中的哪些地方发挥了关键作用

  • 云计算中运用虚拟化技术主要体现在数据中心的虚拟化上。
  • 数据中心的虚拟化是通过服务器虚拟化、存储虚拟化和网络虚拟化实现的。
    • 服务器虚拟化:在云计算中是最重要和最关键的,是将一个或多个物理服务器虚拟成多个逻辑上的服务器,集中管理,能跨越物理平台而不受物理平台的限制。
    • 存储虚拟化:把分布的异构存储设备统一为一个或几个大的存储池,方便用户的使用和管理。
    • 网络虚拟化:在底层网络和网络用户之间增加一个抽象层,该抽象层向下对物理网络资源进行分割,向上提供虚拟网络。

16、服务器虚拟化、存储虚拟化和网络虚拟化都有哪些实现方式

  • 服务器虚拟化:
    • CPU虚拟化:把物理CPU抽象成虚拟CPU,任意时刻,一个物理CPU只能运行一个虚拟CPU指令。
    • 内存虚拟化:把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。
    • I/O设备虚拟化:把真实的I/O设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。
  • 存储虚拟化:
    • 基于主机的存储虚拟化:虚拟机为物理卷映射到逻辑卷提供了一个虚拟层。
    • 基于存储设备的存储虚拟化:在存储设备的磁盘、适配器或者控制器上实现虚拟化功能。
    • 基于网络的存储虚拟化:在网络设备上实现存储虚拟化功能,包括基于互连设备和基于路由器两种方式。
  • 网络虚拟化:
    • 核心层虚拟化:数据中心核心网络设备的虚拟化。
    • 接入层虚拟化:实现数据中心接入层的分层设计。
    • 虚拟机网络虚拟化:虚拟机网络交互包括物理网卡虚拟化和虚拟网络交换机,在服务器内部虚拟出相应的交换机和网卡功能。

参考文献:

[1]刘鹏. 云计算(第三版). [M]北京:电子工业出版社,2015.08;

你可能感兴趣的:(大数据)