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

云计算与的定义

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

云计算的特点

(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的可扩展性和可靠性

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 —— 网络层(IP数据报)

计算机网络 —— 网络层(IP数据报) 网络层要满足的功能IP数据报IP数据报格式IP数据报首部格式数据部分 IP数据报分片 我们今天进入网络层的学习。 网络层要满足的功能 网络层作为OSI模型中的第三层,是计算机网络体系结构的关键组成部分&…

ubuntu 用户名及密码忘记操作

1、重启系统,长按Shift键,直到出现菜单,选则高级设置。选择recovery mode,即恢复模式 2、选择root 3、# 后面敲入 sudo passwd 用户名 4、# passwd "用户名" 之后再敲两次密码就可以了。(如果提示修改失败可先执行&a…

汇编:宏的使用

汇编语言中的宏是用于定义可重复使用的代码块或指令集合的强大工具。宏通过简化代码编写和提高可读性,使得编写和维护汇编程序更加方便;在 MASM(Microsoft Macro Assembler)中,宏的定义和使用非常常见。以下是对汇编语…

【机器学习】机器学习与医疗健康在智能诊疗中的融合应用与性能优化新探索

文章目录 引言机器学习与医疗健康的基本概念机器学习概述监督学习无监督学习强化学习 医疗健康概述疾病预测诊断辅助个性化治疗方案制定 机器学习与医疗健康的融合应用实时健康监测数据预处理特征工程 疾病预测与优化模型训练模型评估 诊断辅助与优化深度学习应用 个性化治疗方…

(UE4.26)UE4的FArchive序列化入门

前言 序列化(Serialize)和反序列化(UnSerialize)是程序领域常见的概念。对于这两个词汇我理解的是 序列化(Serialize): 变量值(int, float, string等基本类型, 或者Array,Map,或者更复杂的复合体)存储为一个文件(二进制流, 二进制文件, json, xml等格式…

编程规范-代码检测-格式化-规范化提交

适用于vue项目的编程规范 – 在多人开发时统一编程规范至关重要 1、代码检测 --Eslint Eslint:一个插件化的 javascript 代码检测工具 在 .eslintrc.js 文件中进行配置 // ESLint 配置文件遵循 commonJS 的导出规则,所导出的对象就是 ESLint 的配置对…

Python数据分析I

目录 注:简单起见,下文中"df"均写为"表名","函数"均写为"HS","属性"均写为"SX","范围"均写为"FW"。 1.数据分析常用开源库 注释…

【国产NI替代】SMU 源测量仪:源测量单元平台主要用于半导体、传感器、模组等 IVR 测试测量

• 集 5 台仪器 (数字万用表、电压源、电流源、电子负载和脉冲发生器) 功能于⼀体 • 典型输出源及测量精度 02%,支持直流/脉冲输出模式 • 脉冲输出模式,最⼩脉冲宽度 100 us ,上升时间 10 us • 具有 pA 级分辨率高精度源,且…

融云:应用出海新增长引擎,GPT-4o 后的 AI 创新与用户运营

近日,融云与 TikTok、维卓联合在京举办了“十年出海,遇上 AI”私享会。 会上,融云解决方案架构师于洪达带来了《应用出海新增长引擎,AI 创新与用户精细化运营》主题分享,探讨在 AI 技术大潮下应用出海通过创新运营方式…

Java基础——数组Array

系列文章目录 文章目录 系列文章目录前言一、数组基本概念二、一维数组三、数组的模型四、数组对象的创建五、元素为引用数据类型的数组 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网…

linux业务代码性能优化点

planning优化的一些改动----------> 减少值传递&#xff0c;多用引用来传递 <---------- // ----------> 减少值传递&#xff0c;多用引用来传递 <---------- // 例1&#xff1a; class A{}; std::vector<A> v; // for(auto elem : v) {} // 不建议&#xff…

flink读取hive写入http接口

目录 0、创建hive数据 1、pom.xml 2、flink代码 3、sink 4、提交任务jar 5、flink-conf.yaml 6、数据接收 flink-1.17.2jdk1.8hive-3.1.3hadoop3.3.6passwordhttp0、创建hive数据 /cluster/hive/bin/beeline !connect jdbc:hive2://ip:10000 create database demo; d…

【CS.SE】使用 docker pull confluentinc/cp-kafka 的全面指南

文章目录 1 引言2 准备工作2.1 安装 Docker2.1.1 在 Linux 上安装 Docker2.1.2 在 macOS 上安装 Docker2.1.3 在 Windows 上安装 Docker 2.2 验证 Docker 安装 3 拉取 confluentinc/cp-kafka Docker 镜像3.1 拉取镜像3.2 验证镜像 4 运行 Kafka 容器4.1 启动 ZooKeeper4.2 启动…

vue3中的ref与reactive的区别

目录 1、两者的区别底层实现响应式引用与响应式对象 2、用法3、vue3中声明的数组/对象3.1 通过reactive 声明的Array/Object&#xff0c;给它重新分配一个全新的对象时&#xff0c;会出错、或失去响应式效果 3.2 解决方案 4、cosnt 说明5、Proxy 与 definePropertyref 浅层响应…

从零开始实现自己的串口调试助手(9)-重置多文本框,保存/载入指令集

重置多文本框 添加多文本控件列表 在构造函数中把我们需要操作的控件归类到对应列表之中 //创建多文本存放数组 - 存放那三列内容 checkBox lineEdi btnfor(int i1;i<9;i){// 添加到按钮数组QString btnName QString("pushButton_t%1").arg(i); //构建对应控件名…

前端工程化:基于Vue.js 3.0的设计与实践

这里写目录标题 《前端工程化&#xff1a;基于Vue.js 3.0的设计与实践》书籍引言本书概述主要内容作者简介为什么选择这本书&#xff1f;结语 《前端工程化&#xff1a;基于Vue.js 3.0的设计与实践》书籍 够买连接—>https://item.jd.com/13952512.html 引言 在前端技术日…

深度解析:短剧市场的发展趋势

一、 短剧视频的兴起 小程序短剧视频是近年来在社交媒体平台上崭露头角的一种内容形式&#xff0c;其独特的表达方式吸引了大量用户的关注&#xff0c;这种类型的视频通常以小幅度、短时长的剧情为主&#xff0c;具有轻松幽默的风格&#xff0c;适合在碎片化的时间作为娱乐消遣…

Shell脚本学习_字符串变量

目录 1.Shell字符串变量&#xff1a;格式介绍 2.Shell字符串变量&#xff1a;拼接 3.Shell字符串变量&#xff1a;字符串截取 4.Shell索引数组变量&#xff1a;定义-获取-拼接-删除 1.Shell字符串变量&#xff1a;格式介绍 1、目标&#xff1a; 能够使用字符串的三种方式 …

HTTP-web服务器

web服务器 web服务器实现了http和相关的tcp连接处理&#xff0c;负责管理web服务器提供的资源&#xff0c;以及对服务器的配置&#xff0c;控制以及拓展等方面的管理 web服务器逻辑实现了http协议&#xff0c;并负责提供web服务器的管理功能&#xff0c;web服务器逻辑和操作系…

makefile与进度条

Linux项目自动化构建工具-make/makefile make是一个命令&#xff0c; makefile是一个文件&#xff0c;保存依赖关系和依赖方法。‘ touch Makefile/makefile mybin:mytest.c//依赖关系 目标文件&#xff1a;依赖文件列表 文件列表的文件之间以空格分隔 gcc -o mybin mytest.…