武汉理工大学 云计算与服务计算 期末复习

云计算与的定义

长定义是:“云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。”
短定义是:“云计算是通过网络按需提供可动态伸缩的廉价计算服务

云计算的特点

(1)超大规模。“云”具有相当的规模,谷歌云计算已经拥上百万台服务器,亚马
逊、IBM、微软、Yahoo、阿里、百度和腾讯等公司的“云”均拥有几十万台服务
器。“云”能赋予用户前所未有的计算能力。
(2)虚拟化。云计算支持用户在任意位置、使用各种终端获取服务。所请求的资源
来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无须了解应
用运行的具体位置,只需要一台计算机、PAD或手机,就可以通过网络服务来获取各种能
力超强的服务。
(3)高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服
务的高可靠性,使用云计算比使用本地计算机更加可靠。
(4)通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应
用,同一片“云”可以同时支撑不同的应用运行。
(5)高可伸缩性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。
(6)按需服务。“云”是一个庞大的资源池,用户按需购买,像自来水、电和煤气那
样计费。
(7)极其廉价。“云”的特殊容错措施使得可以采用极其廉价的节点来构成
云;“云”的自动化管理使数据中心管理成本大幅降低;“云”的公用性和通用性使资源的利
用率大幅提升;“云”设施可以建在电力资源丰富的地区,从而大幅降低能源成本。因
此“云”具有前所未有的性能价格比。

大数据的特点

4V+1C。
(1)数据量大(Volume):存储的数据量巨大,PB级别是常态,因而对其分析的计
算量也大。
(2)多样(Variety):数据的来源及格式多样,数据格式除了传统的结构化数据
外,还包括半结构化或非结构化数据,比如用户上传的音频和视频内容。而随着人类活动
的进一步拓宽,数据的来源更加多样。
(3)快速(Velocity):数据增长速度快,而且越新的数据价值越大,这就要求对数
据的处理速度也要快,以便能够从数据中及时地提取知识,发现价值。
(4)价值密度低(Value):需要对大量的数据进行处理,挖掘其潜在的价值,因
而,大数据对我们提出的明确要求是设计一种在成本可接受的条件下,通过快速采集、发
现和分析,从大量、多种类别的数据中提取价值的体系架构。
(5)复杂度(Complexity):对数据的处理和分析的难度大。

Google文件系统GFS

Google文件系统(Google File System,GFS)是一个大型的分布式文件系统。它为
Google云计算提供海量存储,并且与Chubby、MapReduce及Bigtable等技术结合十分紧
密,处于所有核心技术的底层。GFS不是一个开源的系统,我们仅能从Google公布的技术
文档来获得相关知识。

Google GFS的新颖之处在于它采用廉价的商用机器构建分布式文件系统,同时将GFS
的设计与Google应用的特点紧密结合,简化实现,使之可行,最终达到创意新颖、有用、
可行的完美组合。GFS将容错的任务交给文件系统完成,利用软件的方法解决系统可靠性
问题,使存储的成本成倍下降。GFS将服务器故障视为正常现象,并采用多种方法,从多
个角度,使用不同的容错措施,确保数据存储的安全、保证提供不间断的数据存储服务。

GFS的特点:

(1)采用中心服务器模式,简化了设计。
(2)不缓存数据。
(3)在用户态下实现,降低耦合度和编程难度。
(4)只提供专用接口,降低了实现难度和复杂度,提高了通用性和效率。

MapReduce模型

MapReduce是Google提出的一个软件架构,是一种处理海量数据的并行编程模式,用
于大规模数据集(通常大于1TB)的并行运算。Map(映射)、Reduce(化简)的概念和
主要思想,都是从函数式编程语言和矢量编程语言借鉴来的。正是由于MapReduce有函
数式和矢量编程语言的共性,使得这种编程模式特别适合于非结构化和结构化的海量数据
的搜索、挖掘、分析与机器智能学习等。

简单地说,一个Map函数就是对一部分原始数据进行指定的操作。每个Map操作都针
对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化。一
个Reduce操作就是对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理
的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的
结果集,因此Reduce也可以在并行环境下执行。
在这里插入图片描述

分布式锁服务Chubby

Chubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系
统,解决了分布的一致性问题。通过使用Chubby的锁服务,用户可以确保数据操作过程
中的一致性。不过值得注意的是,这种锁只是一种建议性的锁(Advisory Lock)而不是
强制性的锁(Mandatory Lock),这种选择使系统具有更大的灵活性。

通常情况下Google的一个数据中心仅运行一个Chubby单元(Chubby cell,下面会
有详细讲解述),这个单元需要支持包括GFS、Bigtable在内的众多Google服务,因此,
在设计Chubby时候,必须充分考虑系统需要实现的目标以及可能出现的各种问题。
Chubby的设计目标主要有以下几点。
(1)高可用性和高可靠性。这是系统设计的首要目标,在保证这一目标的基础上再
考虑系统的吞吐量和存储能力。
(2)高扩展性。将数据存储在价格较为低廉的RAM,支持大规模用户访问文件。
(3)支持粗粒度的建议性锁服务。提供这种服务的根本目的是提高系统的性能。
(4)服务信息的直接存储。可以直接存储包括元数据、系统参数在内的有关服务信
息,而不需要再维护另一个服务。
(5)支持通报机制。客户可以及时地了解到事件的发生。
(6)支持缓存机制。通过一致性缓存将常用信息保存在客户端,避免了频繁地访问
主服务器。

Chubby文件系统

Chubby系统本质上就是一个分布式的、存储大量小文件的文件系统,它所有的操作
都是在文件的基础上完成的。例如在Chubby最常用的锁服务中,每一个文件就代表了一
个锁,用户通过打开、关闭和读取文件,获取共享(Shared)锁或独占(Exclusive)锁。
选举主服务器的过程中,符合条件的服务器都同时申请打开某个文件并请求锁住该文件。
成功获得锁的服务器自动成为主服务器并将其地址写入这个文件夹,以便其他服务器和用
户可以获知主服务器的地址信息。

Chubby 的主要功能

分布式锁: Chubby 提供了一个分布式锁服务,允许多个进程或线程在同一时间对共享资源进行访问控制。它保证了多个进程或线程对共享资源的访问是互斥的,从而避免了冲突和数据不一致的问题。

命名空间管理: Chubby 提供了一个命名空间,用于存储元数据和配置信息。这些信息可以被分布式系统中的各个组件访问和更新。

服务发现: Chubby 可以用来发现分布式系统中的服务。它维护了一个服务注册表,其中包含了系统中所有服务的位置和状态信息。客户端可以通过查询 Chubby 来找到所需的服务。

Chubby 的作用

保证数据一致性: 通过分布式锁机制,Chubby 保证了分布式系统中数据的一致性。

简化分布式系统设计: Chubby 提供了命名空间管理和服务发现等功能,简化了分布式系统的设计。

提高分布式系统可靠性: Chubby 的容错机制提高了分布式系统的可靠性。

Chubby 的应用场景:

分布式数据库: Chubby 可以用来保证分布式数据库中数据的一致性。

分布式缓存: Chubby 可以用来协调分布式缓存中的数据更新。

分布式消息队列: Chubby 可以用来保证分布式消息队列的有序性和一致性。

分布式结构化数据表BigTable

Bigtable是Google开发的基于GFS和Chubby的分布式存储系统。Google的很多数据,包括Web索引、卫星图像数据等在内的海量结构化和半结构化数据,都存储在Bigtable中。从实现上看,Bigtable并没有什么全新的技术,但是如何选择合适的技术并将这些技术高效、巧妙地结合在一起恰恰是最大的难点。Bigtable在很多方面和数据库类似,但它并不是真正意义上的数据库。通过本节的学习,读者将会对Bigtable的数据模型、系统架构、实现以及它使用的一些数据库技术有一个全面的认识。

Bigtable 的主要特点:

(1)分布式存储: Bigtable 将数据分布存储在多个服务器上,能够处理 PB 级的数据规模。
(2)可扩展性: Bigtable 可以根据数据量的增长动态扩展,无需停机维护。
(3)高性能: Bigtable 提供了低延迟的数据访问,能够满足实时数据查询的需求。
(4)多模型支持: Bigtable 支持多种数据模型,包括稀疏数据、半结构化数据等。
(5)强一致性: Bigtable 提供了强一致性保证,确保数据在所有副本之间保持一致。

基础存储架构Dynamo

当Web服务刚刚兴起时,各种平台大多采用关系型数据库进行数据存储。但由于Web数据中大部分为半结构化数据且数据量巨大,关系型数据库无法满足其存储要求。为此,很多服务商都设计并开发了自己的存储系统。其中,Amazon的Dynamo是非常具有代表性的一种存储架构,被作为状态管理组件用于AWS的很多系统中。2007年,Amazon将Dynamo以论文形式发表,引起了广泛的关注,并被作为其他云存储架构的基础和参照,例如最初由Facebook开发的开源分布式数据库Cassandra。

EC2

弹性计算云服务(Elastic Compute Cloud,EC2)是AWS的重要组成部分,用于提供大小可调节的计算容量[13]。它为用户提供了许多非常有价值的特性,包括低成本、灵活性、安全性、易用性和容错性等[8]。借助Amazon EC2,用户可以在不需要硬件投入的情况下,快速开发和部署应用程序,并方便地配置和管理。

在这里插入图片描述
EC2的关键技术有:

1.地理区域和可用区域
AWS中采用了两种区域[13](Zone):地理区域(Region Zone)和可用区域(Availability Zone)。其中,地理区域是按照实际的地理位置划分的。目前,Amazon在全世界共有10个地理区域,包括:美东(北佛吉尼亚)、美西(俄勒冈)、美西(北加利佛尼亚)、欧洲(爱尔兰)、亚太(新加坡)、亚太(东京)、亚太(悉尼)、南美(圣保罗)、美西服务政府的GovCloud区域和中国(北京)区域。而可用区域的划分则是根据是否有独立的供电系统和冷却系统等,这样某个可用区域的供电或冷却系统错误就不会影响到其他可用区域,通常将每个数据中心看做一个可用区域。图3-12展示了两者之间的关系。EC2系统中包含多个地理区域,而每个地理区域中又包含多个可用区域。为了确保系统的稳定性,用户最好将自己的多个实例分布在不同的可用区域和地理区域中。这样在某个区域出现问题时可以用别的实例代替,最大限度地保证了用户利益。
在这里插入图片描述

2.EC2的通信机制
在EC2服务中,系统各模块之间及系统和外界之间的信息交互是通过IP地址进行的。EC2中的IP地址包括三大类:公共IP地址[13](Public IP Address)、私有IP地址[13](Private IP Address)及弹性IP地址[13](Elastic IP Address)。EC2的实例一旦被创建就会动态地分配两个IP地址,即公共IP地址和私有IP地址。公共IP地址和私有IP地址之间通过网络地址转换(Network Address Translation,NAT)技术实现相互之间的转换。公共IP地址和特定的实例相对应,在某个实例终结或被弹性IP地址替代之前,公共IP地址会一直存在,实例通过这个公共IP地址和外界进行通信。私有IP地址也和某个特定的实例相对应,它由动态主机配置协议(DHCP)分配产生。
3.弹性负载平衡(Elastic Load Balancing)
弹性负载平衡功能允许EC2实例自动分发应用流量,从而保证工作负载不会超过现有能力,并且在一定程度上支持容错。弹性载平衡功能可以识别出应用实例的状态,当一个应用运行不佳时,它会自动将流量路由到状态较好的实例资源上,直到前者恢正常才会重新分配流量到其实例上。
4.监控服务(CloudWatch)
Amazon CloudWatch提供了AWS资源的可视化监测功能,包括EC2实例状态、资源利用率、需求状况、CPU利用率、磁盘读取、写入和网络流量等指标。使用CloudWatch时,用户只需要选择EC2实例,设定监视时间,CloudWatch就可以自动收集和存储监测数据。用户可以通过AWS服务管理控制台或命令行工具来维护和处理这些监测数据。
5.自动缩放(AutoScaling)
自动缩放可以按照用户自定义的条件,自动调整EC2的计算能力。在需求高峰期时,该功能可以确保EC2实例的处理能力无缝增大;在需求下降时,自动缩小EC2实例规模以降低成本。自动缩放功能特别适合周期性变化的应用程序,它由CloudWatch自动启动。
6.服务管理控制台(AWS Management Console)
服务管理控制台是一种基于Web的控制环境,可用于启动、管理EC2实例和提供各种管理工具和API接口。图3-13展示了各项技术通过互相配合来实现EC2的可扩展性和可靠性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/690379.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

批量转换更高效:一键修改TXT后缀名转DOCX,轻松实现文件高效管理!

在日常生活和工作中,我们经常需要处理大量的文件,而文件格式的转换和管理往往是其中一项繁琐的任务。特别是当需要将大量的TXT文件转换为DOCX格式时,传统的逐个手动操作不仅效率低下,还容易出错。然而,现在有了我们这款…

【ArcGIS微课1000例】0117:ArcGIS中如何将kml(kmz)文件转json(geojson)?

文章目录 一、kml获取方式二、kml转图层三、图层转json一、kml获取方式 kml文件是一种很常用的数据格式,可以从谷歌地球(googleearth)获取某一个地区的kml范围文件,如青海湖(做好的kml文件可以从配套实验数据包0117.rar中获取)。 二、kml转图层 打开【KML转图层】工具,…

在线渲染3d怎么用?3d快速渲染步骤设置

在线渲染3D模型是一种高效的技术,它允许艺术家和设计师通过互联网访问远程服务器的强大计算能力,从而加速渲染过程。无论是复杂的场景还是高质量的视觉效果,在线渲染服务都能帮助您节省宝贵的时间。 在线渲染3D一般选择的是:云渲染…

数据结构之初识泛型

目录: 一.什么是泛型 二.引出泛型 三.泛型语法及,泛型类的使用和裸类型(Raw Type) 的了解 . 四.泛型的编译: 五.泛型的上界 六.泛型方法 注意:在看泛型之前可以,回顾一下,包装类,包装类就是服务…

【Python预处理系列】深入理解过采样技术及其Python实现

目录 一、过采样简介 二、过采样的实现方法 三、过采样和欠采样是数据增强吗 四、Python实现SMOTE过采样 (一) 生成不平衡数据集 (二) 将数据集转换为DataFrame,便于展示 (三) 应用SMOTE算法进行过采样 &…

命令行打包最简单的android项目从零开始到最终apk文件

准备好需要的工具 AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 jdk的链接我就不发出来,自己选择,我接下来用的是8版本的jdk和android10的sdk sdk的安装和环境变量的配置 sdk tool压缩包打开后是这样子,打开sdk mana…

3-1RT-Thread时钟管理

这里写自定义目录标题 时钟节拍是RT thread操作系统的最小时间单位。 第一个功能,rt tick值自动加1,在RT thread当中通过RT_USING_SMP定义了多核和单核的场景。第二个功能,检查当前线程的时间片,首先获取当前线程,将当…

[数据集][目标检测]室内积水检测数据集VOC+YOLO格式761张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):761 标注数量(xml文件个数):761 标注数量(txt文件个数):761 标注类别…

【Text2SQL 论文】PET-SQL:用 Cross-Consistency 的 prompt 增强的两阶段 Text2SQL 框架

论文:PET-SQL: A Prompt-enhanced Two-stage Text-to-SQL Framework with Cross-consistency ⭐⭐⭐ arXiv:2403.09732,商汤 & 北大 Code:GitHub 一、论文速读 论文一开始提出了以往 prompt-based 的 Text2SQL 方法的一些缺点&#xff1…

Linux卸载残留MySQL【带图文命令巨详细】

Linux卸载残留MySQL 1、检查残留mysql2、检查并删除残留mysql依赖3、检查是否自带mariadb库 1、检查残留mysql 如果残留mysql组件,使用命令 rpm -e --nodeps 残留组件名 按顺序进行移除操作 #检查系统是否残留过mysql rpm -qa | grep mysql2、检查并删除残留mysql…

[职场] 关于薪酬需要知道的两个知识点 #知识分享#知识分享

关于薪酬需要知道的两个知识点 薪酬问题是面试过程中比较核心的问题,也是每次面试必问的。如果你进入到面试的后一阶段,这类问题可以让面试官或企业判断求职者的要求是否符合企业的薪酬标准,并进一步判断求职者对自身价值的认可程度。关于薪…

设计模式-六大原则

概述 设计模式体现的是软件设计的思想,而不是软件技术,它重在使用接口与抽象类来解决各种问题。在使用这些设计模式时,应该首先遵守六大原则。 原则含义具体方法开闭原则对扩展开放,对修改关闭多使用抽象类和接口里氏代换原则基…

文件属性与目录

一、Linux 系统中的文件类型 Linux 系统中的文件类型 Linux 下一切皆文件,文件作为 Linux 系统设计思想的核心理念。 1、普通文件 普通文件( regular file )在 Linux 系统下是最常见的,譬如文本文件、二进制文件&#xff0c…

用户输入表格数据设计(XPTable控件使用说明九)

XP Table控件可以编辑数据,程序也可以使用编辑后的数据,但是程序新建时又从初始化数据到模型到显示,这两步有点绕,做了一个实例来说明这块内容。 流程1:初始化数据--> model--> UI show 流程2:UI--…

Vue09-事件处理

一、一个简单的示例 v-on&#xff1a;当xxx的时候。 二、事件处理 2-1、参数说明 <div id"root"><h1>你好呀&#xff0c;{{name}}</h1><button v-on:click"showinfo">点击我</button></div><script>new Vue({e…

css3 都有哪些新属性

1. css3 都有哪些新属性 1.1. 圆角边框 (border-radius)1.2. 盒子阴影 (box-shadow)1.3. 文本阴影 (text-shadow)1.4. 响应式设计相关属性1.5. 渐变背景 (gradient backgrounds)1.6. 透明度 (opacity 和 rgba/hsla)1.7. 多列布局 (column-count, column-gap, etc.)1.8. 变换 (t…

正大国际期货:沪深300股指期货如何设置止损?

简单易懂的止损设置方法&#xff1a; 1. 平衡点止损法&#xff1a; 刚开始投资时&#xff0c;先设定一个止损点&#xff0c;通常在买入价格的1%到30%之间。 如果价格上升&#xff0c;就把止损点移动到你的买入价格&#xff0c;这样即使价格回落&#xff0c;你也不会亏本。 随…

c++使用_beginthreadex创建线程

记录使用_beginthreadex()&#xff0c;来创建线程。方便后期的使用。 创建一个线程 相关函数介绍 unsigned long _beginthreadex( void *security, // 安全属性&#xff0c; 为NULL时表示默认安全性 unsigned stack_size, // 线程的堆栈大小&#xff0c; 一般默认为0 u…

什么时候用C而不用C++?

做接口只用C&#xff0c;千万别要C。C是编译器敏感的&#xff0c;一旦导出的接口里有 std::string这些东西&#xff0c;以及类&#xff0c;注定了要为各个编译器的各个版本准备独立的库。 刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第七周) - 结构化预测

结构化预测 0. 写在大模型前面的话1. 词法分析 1.1. 分词1.2. 词性标注 2.2. 句法分析 2.3. 成分句法分析2.3. 依存句法分析 3. 序列标注 3.1. 使用分类器进行标注 4. 语义分析 0. 写在大模型前面的话 在介绍大语言模型之前&#xff0c;先把自然语言处理中遗漏的结构化预测补…