云计算及应用课程知识整理-程序员宅基地

技术标签: 云计算  

一、云计算

云计算概念

什么是云
云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取算力、储存空间和信息服务。
云的特点

  • 超大规模
  • 虚拟化
  • 高可靠性
  • 通用性
  • 高可伸缩性
  • 按需服务
  • 极其廉价

云计算的服务类型

  • IaaS / Infrastructure as a Service:将应用设备等基础资源封装成服务供用户使用(如EC2/S3)
  • PaaS / Platform as a Service:对资源的抽象层次更进一步,提供用户应用程序运行环境。(如谷歌AppEngine、微软WindowsAzure)
  • SaaS / Software as a Service:针对性更强,将某些特定应用软件功能封装成服务。(如CRM))

云计算技术体系结构的层次及其功能

  • 物理资源层
    计算机、存储器、网络设备、数据库和软件等。
  • 资源池层
    将大量相同类型的资源构成同构或接近同构的资源池。
  • 管理中间件
    云计算的资源管理,并对众多应用任务进行调度,使资源能够高效、安全地位应用提供服务。
  • SOA构件层
    运转云计算能力成标准Web Services服务,并纳入到SOA体系。

为什么云计算成本低?

  • 规模大,降低单位费率
  • 机房处于电力成本较低的地区
  • 提供弹性服务,能提高资源利用率
  • 集中管理费用较低
  • 硬件成本低

二、GFS

分布式的文件系统设计需要考虑哪些问题?

  • 系统架构如何设计?
  • 文件如何拆分?
  • 元数据如何管理?
  • 如何容错?
  • 故障自动检测
  • 节点动态管理

GFS架构

在这里插入图片描述

控制流和数据流分离,数据流只在client和chunk Server(数据块服务器)之间流动,Client和master(主服务器)之间只有控制流,没有数据流。;
命名空间和chunk上的实际目录存在映射关系。

GFS容错机制

Master容错:当master发生故障时,命名空间和映射表通过日志可以迅速恢复。
Chunk Server容错 :采用副本的方式实现容错,每个Chunk默认有三个副本。对于每个Chunk,必须将所有副本全部写入成功,才视为成功写入。

三、分布式数据处理MapReduce

mapReduce概念

功能
把对数据集的大规模操作,分给一个主节点管理下的各分节点共同完成,通过这种方式实现任务的可靠执行与容错机制。

  • Map操作:对一部分原始数据进行指定的操作。Map与Map之间都是独立的,因此可以并行。
  • Reduce操作:对每个Map产生的中间结果进行合并操作。

实现机制

图中:

  1. MapReduce函数首先把输入文件分成M块
  2. 分派的执行程序中有一个Master
  3. 被分配了Map任务的Worker读取并处理相关输入块
  4. Map处理后的中间结果被写入到本地磁盘,这些数据通过分区函数分成R个区
  5. Master通知执行Reduce的Worker关于中间结果的位置,worker通过远程调用(RPC),从本地磁盘读取缓冲的中间数据
  6. Reduce Worker根据每一个key来遍历所有排序后的中间结果,并把key相同的相关结果传递给用户定义的Reduce函数
  7. 当所有Map任务和Reduce任务结束后,Master激活用户程序

MapReduce适合什么类型数据?

适合批处理数据,不适合实时数据。

四、分布式锁服务Chubby

Chubby是谷歌设计的提供粗粒度锁服务的一个文件系统,基于松耦合分布式系统,解决了分布的一致性问题。

chubby功能

  • 通过使用Chubby 的锁服务,用户可以确保数据操作过程中的一致性

两阶段决议

  • 准备阶段
  • 批准阶段

chubby基本架构

  • 客户端:每个客户端应用程序都有一个Chubby程序库,客户端的所有应用都是通过调用这个库中的相关函数来完成的。
  • 服务器端:称为Chubby单元,一般是由5个称为副本的服务器组成,在配置上完全一致,且在系统开始时处于对等状态。

五、分布式结构化数据表BigTable

Bigtable分布式数据存储系统是Google为其内部海量的结构化数据开发的云存储技术。

架构

BigTable中chubby的用途

  1. 选取并保证同一时间类只有一个主服务器
  2. 获取子表的位置信息
  3. 保存BigTable的模式信息及访问控制信息

六、分布式存储系统Megastore

实现机制

融合SQL和noSQL

局部索引和全局索引

局部索引:定义在单个实体组中,作用域仅限于单个实体组。(如PhotosByTime)
全局索引:横跨多个实体组集进行数据读取操作(如PhotoByTag)

三种读

  • current:等所有备份都达一致状态后再读最新的数据。
  • snapshot:根据日志,读一致的最后一个完整提交成功的数据。如,当当前数据未在所有的备份中同步时,读当前数据写入之前的数据。
  • inconsistent:不考虑日志状态,不在乎数据是否一致。

三种副本

  • 完整副本:可读写可的副本
  • 见证者副本:只有日志而无数据,用于Paxos投票。
  • 只读副本

七、大规模分布式系统监控架构Dapper

监控系统的设计有那些基本要求

  1. 广泛可部署性
  2. 不间断的监控

三个设计目标

  1. 低开销
  2. 对应用层透明
  3. 可扩展性

监控树

一个同特定事件相关的所有消息

区间

实际上就是一条记录

注释

辅助推断区间,也可以包含一些自定义内容。

解决低开销、广泛可部署的手段——二次抽样技术

八、谷歌应用引擎appEngine

Google App Engine是一个由Python应用服务器群、Bigtable数据库及GFS数据存储服务组成的平台,它能为开发者提供一体化的可自动升级的在线应用服务。

九、亚马逊基础储存架构Dynamo

一致性hash算法

在hash换上,增加、删除节点数据会如何变化。

十、弹性计算云EC2

Amazon机器映像(AMI)

是包含了操作系统、服务器程序、应用程序等软件配置的模板。
当用户使用EC2服务区创建自己的应用程序时,首先要构建或获取相应的AMI。

实例(Instance)

EC2中实例由AMI启动,可以像传统的主机一样提供服务。同一个AMI可以用于创建具有不同计算和储存能力的实例。

弹性块存储(EBS)

与物理硬盘类似,大小由用户设定。适用于数据需要细粒度地频繁访问并持久保存的情况,适合作为文件系统或数据库的主存储

区域

地理区域
按照实际的地理位置划分。
可用区域
是否由独立的供电系统和冷却系统等,通常将每一个数据中心看做一个可用区域。每个地理区域包含多个可用区域。

三种IP地址

  • 公共IP地址
  • 私有IP地址
  • 弹性IP地址
    和用户账号绑定而不是和某个特定的实例绑定,通过弹性IP地址改变映射关系保证总有实例可用。

桶和对象

S3储存系统的基本结构。
:用于存储对象的容器,不可被嵌套。
对象:存储数据(任意类型)和元数据(数据内容的附加描述信息,如时间、长度)。

十一、亚马逊关系型数据库RDS

RDS如何提供服务

1.RDS将MySQL数据库移植到集群中,在一定范围内解决了关系数据库的可拓展性
2.Mysql集群方式采用了Share-Nothing架构:
(1)每台数据库服务器是完全独立的计算机系统,通过网络相连,不共享任何资源
(2)这是个具有可扩展架构,当数据库处理能力不时,可以增加服务器数来提高处理力,同时多个服务器也增加了数据库并发能力
在这里插入图片描述
在这里插入图片描述

简单队列服务SQS

是亚马逊是解决云计算平台之间不同组件的通信专门开发的消息队列服务。

  1. 系统组件: 服务对象(消息接受或发送者)
  2. 队列: 存放消息的队列
  3. 消息:是发送者创建的具有一定格式的文本数据,接受对象可以是一个或多个组件。——消息ID、接收句柄、消息体、消息体MD5摘要

十二、亚马逊内容推送服务CloudFront

内容推送服务CDN

原本问题:
世界各地的访问者都必须直接和网站服务器连接才可以访问相关内容,存在明显的缺陷。
解决:
CDN技术通过将网站内容发布到靠近用户的边缘节点,使不同地域的用户在访问相同网页时可以就近获取。
DNS在对域名进行解析时,不再对用户返回网站服务器的IP,而是返回了由智能CDN负载均衡系统选定的某个边缘节点的IP。

十三、Hadoop

hdfs相关命令

文件上传

hadoop fs -put <local file> <hdfs file>

列出目录和文件

hadoop fs -ls

下载文件或目录到本地

hadoop fs -get <hdfs file> <local file or dir>

删除文件或目录

hadoop fs -rm <hdfs file>
hadoop fs -rm -r <hdfs dir>

创建目录

hadoop fs -mkdir -p <hdfs path>  -- p参数表示递归创建

创建文件

hadoop fs -touchz <hdfs file>

拷贝文件

hadoop fs -cp <hdfs file> <hdfs file>

移动文件

hadoop fs -mv <hdfs file> <hdfs file>

加载文件

hadoop fs -cat <hdfs file>

格式化namenode

hadoop namenode -format

启动hadoop集群

start-all.sh

查看状态

hdfs dfsadmin -report

查看文件大小

hadoop fs -du <hdfs file>

hadoop架构

十四、yarn

两大功能

资源管理
通过ResourceManager实现
任务调度
通过ApplicationMaster实现

application master和application manager的区别

  • ApplicaionManager: 选定,启动和监管ApplicationMaster
  • ApplicaionMaster: 任务执行和监管中心,在某个任务进程中,协调位于实体机器上的各个Container

十五、spark

spark相对于mapreduce 的优势

Hadoop/MapReduce缺点(ppt重点提到缺点,但优点没单页列出,可补充)
(1) MR算法少,不适合描述复杂的数据处理过程(不适合Group By、 Join等操作)
(2) 每次Reduce都需要磁盘读写,速度慢;Spark只需要一次磁盘读写,大部分处理在内存中进行
(3) MR需要成对出现
(4) Master节点调度慢
(5) 单节点

四大组件及其功能

  1. SparkStreaming,针对实时数据进行流式计算的组件;
  2. SparkSQL,用来操作结构化数据的组件;
  3. GraphX,Spark面向图计算提供的框架与算法库;
  4. MLlib,一个机器学习算法库。

rdd编程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45668903/article/details/112298935

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签