云计算读书笔记(二)

简介: google云计算原理与应用 google云计算服务包括:google文件系统GFS,分布式计算编程模形MapReduce,分布式锁服务Chubby,分布式结构化数据表Bigtable,分布式存储系统Megastore以及分布式监控系统Dapper等。

google云计算原理与应用

google云计算服务包括:google文件系统GFS,分布式计算编程模形MapReduce,分布式锁服务Chubby,分布式结构化数据表Bigtable,分布式存储系统Megastore以及分布式监控系统Dapper等。

GFS提供了海量数据的存储和访问能力。

GFS

系统架构:

分为三类角色,client(客户端),Master(主服务器)和Chunk Server(数据块服务器)

1,使用的是中心服务器模块,可以任意添加chunk server.

2,不实现缓存,这是从必要性和可行性两方面考虑。

必要性:客户端大部分是流式读写,不存在大量的重复读写。

可行性:如何维护缓存与实际数据之间一致性是一个极其复杂的问题。加之网络等不确定因素,一致性问题尤为复杂。而且数据量非常大,以当前的内存容量根本无法缓存。

而对于存储在GFS的Master中的数据实现了缓存。

3,在用户状态下实现,正常的文件系统是操作系统的重要组成部分,在内核态实现文件系统可以更好的和操作系统本身结合。

但GFS却选择在用户态下实现,主要基于以下考虑:

1)在用户态下直接利用操作系统提供的POSIX编程接口就可以扩展存取数据,无需了解内部的实现接口。

2)POSIX接口提供的功能更为丰富不受内核编程的限制

3)在用户态下有多种调试工具

4)用户态下,Master和Chunk Server都以进程的方式运行,单个进程不会影响整个操作系统

5)在用户态下,GFS和操作系统运行在不同的空间,两者的耦合性降低,方便GFS自身的扩展和升级

4,只提供专有的接口

容错机制:

1,Master容错

1)命名空间也就是整个文件系统的目录结构

2)Chunk与文件名的映射表

3)Chunk副本的位置信息,每一个Chunk默认有三个副本

2,Chunk Server容错

GFS采用副本的方式实现Chunk Server的容错,默认每个副本存储3个

GFS划分的每一个Chunk的默认大小是64MB

系统管理技术:

1)大规模的集群安装

2)故障检测

3)节点动态加入

4)节能

分存式数据处理MapReduce

MapReduce就是“映射”和“化简”的概念和主要思想。

比如查询一个大型文本中各个单词出现的次数,经过Map处理后,形成一批中间结果<单词,出现次数>,而Reduce函数处理中间结果,将相同单词出现的次数累加,得到每个单词出现的次数。

分存式锁服务

Chubby是Google设计的提供粗粒度服务的一个文件系统,它是基于松耦合的分布式系统。

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

1,Paxos算法

paxos是一种基于消息传送的一致性算法,用于解决分布式中的一致性问题

如何解决分布式中的一致性问题呢,最简单的就是设置一个结点,所有操作都经过这个结点,这样就能保证唯一性的问题。

但是这样缺点也是显而易见的,就是如果结点失效就会出现混乱,所以需要在系统中设置多个这样的结点。

Paxos算法分成三个类型:proposers、acceptors和learners,其中Proposers提出决议,acceptors批准决议,learners获取并使用已经通过的决议。

2,Chubby系统设计

Chubby的设计目标主要有以下几个:

1)高可用性和高可靠性

2)高扩展性

3)支持粗粒度的建议性锁服务

4)服务信息的直接存储

5)支持通报机制

6)支持缓存机制

分存式结构化数据表Bigtable

Bigtable是Google基于GFS和Chubby的分布式存储系统。

Bigtable在很多方面跟数据库类似。

数据模型:

Bigtable是一个分布式的多维映射表,表中数据通过一个行关键字,一个列关键字以及一个时间戳进行索引。Bigtable对存储在其中的数据不做任何解析,一律看成是字符串。

1)行

可以是任意的字符串,但是大小不能超过64K,排序是根据行关键字进行排序的,推荐使用的是字典序

2)列

有列族的概念,族名:限定词(family:qualifier),族名必须有意义,限定词可以任意选定,同族被压缩存储在一起

族同时也是Bigtable中访问控制的基本单元,也就是说访问权限是在族这一级别上进行的

3)时间戳

默认是64位整数

目前提供两种设置,一种是保留最近N个不同的版本,另一种就是保留限定时间内的所有不同版本

系统架构:

Bigtable主要由三部分组成:客户端程序库(Client Library)、一个主服务器(Master Server)和多个子表服务器(Table Server)

客户端访问Bigtable服务时,首先利用函数库执行open操作打开一个锁,锁打开后客户端就可以跟子表服务器进行通信了。

主服务器的作用:

1)新子表分配

2)子表服务器状态监控

3)子服务器之间的负载均衡

子表服务器:

1)SSTable中的数据被划分成一个个的块(Block),每个块的大小是可以设置的,一般为64KB,在SSTable的结尾有一个索引(Index),在SSTable打开时这个索引会被加载进内存,所以查找的速度会非常快。

每个子表都是由多个SSTable和日志组成

2)子表地址,在Bigtable系统的内部采用的是一种类似B+树的三层查询体系

先查根子表,然后找到元数据子表,最后找到对应的用户表

3)子表的数据存储及读写操作

性能优化

1)局部性群组

2)压缩

3)布隆过滤器

分存式存储系统Megastore

Megastore:关系型数据库和NoSQL的完美结合

设计目标:

1)针对可用性:引入了Paxos算法

2)针对扩展性:采用数据分区将每个分区存放在NoSQL中

megastore的数据模型

通过类似SQL的方式进行查询,有一套对应的查询语言。

Megastore的核心技术-复制

1)复制的日志

2)数据读取 (1)本地查询 (2)发现位置 (3)追赶 (4)验证 (5)查询数据

3)数据写入 (1)接受leader (2)准备 (3)接受 (4)失效 (5)生效

分存式系统的监控基础框架Dapper

分布式监控系统

基本设计目标:

1)低开销

2)对应用层透明

3)可扩展性

目录
相关文章
|
4月前
|
存储 人工智能 自然语言处理
无影AgentBay来了!给AI智能体装上“超级大脑”
阿里云在WAIC上发布专为AI Agents打造的“超级大脑”——无影AgentBay。该云端电脑支持多系统切换,集成视觉理解、自然语言控制等多项AI能力,提供高性能算力与企业级安全保障,助力AI开发者高效构建智能应用。
403 1
无影AgentBay来了!给AI智能体装上“超级大脑”
|
存储 数据挖掘 Java
csv和excel
【10月更文挑战第18天】csv和excel
644 5
|
机器学习/深度学习 人工智能 计算机视觉
AIGC基础模型——Vision Transformer (ViT)
【1月更文挑战第12天】AIGC基础模型——Vision Transformer (ViT)
582 6
AIGC基础模型——Vision Transformer (ViT)
|
UED
<大厂实战经验> Flutter&鸿蒙next 中使用 initState 和 mounted 处理异步请求的详细解析
在 Flutter 开发中,处理异步请求是常见需求。本文详细介绍了如何在 `initState` 中触发异步请求,并使用 `mounted` 属性确保在适当时机更新 UI。通过示例代码,展示了如何安全地进行异步操作和处理异常,避免在组件卸载后更新 UI 的问题。希望本文能帮助你更好地理解和应用 Flutter 中的异步处理。
308 5
|
存储 分布式计算 Cloud Native
湖仓一体概念快问快答
湖仓一体概念快问快答
971 0
湖仓一体概念快问快答
|
人工智能 算法
算法金 | 平均数、众数、中位数、极差、方差,标准差、频数、频率 一“统”江湖
**统计学江湖概要** - **平均数(均值)**:数字的总和除以数量,代表集中趋势,如分赃时平均分配。 - **众数**:出现次数最多的数字,反映了最常见的值,如同一招式被频繁使用。 - **中位数**:排序后位于中间的值,反映数据的中心位置,如同武者武功的中等水平。 - **极差**:最大值减最小值,表示数据波动范围,类似武功最高与最低的差距。 - **方差**:衡量数据波动性,计算每个数值与均值差的平方和的平均数。 - **标准差**:方差的平方根,同单位的波动度量。 - **频数**:某个值出现的次数,如统计武器使用情况。 - **频率**:频数与总次数的比例,显示出现的相对频率。
689 2
算法金 | 平均数、众数、中位数、极差、方差,标准差、频数、频率 一“统”江湖
|
安全 前端开发 Java
struts2-046 远程代码执行 (CVE-2017-5638)
struts2-046 远程代码执行 (CVE-2017-5638)
889 0
struts2-046 远程代码执行 (CVE-2017-5638)
|
机器学习/深度学习 人工智能 算法
AI大模型学习理论基础
本文探讨了AI大模型学习的理论基础,包括深度学习(模拟神经元工作原理,通过多层非线性变换提取特征)、神经网络结构(如前馈、循环和卷积网络)、训练方法(监督、无监督、强化学习)、优化算法(如SGD及其变种)、正则化(L1、L2和dropout防止过拟合)以及迁移学习(利用预训练模型加速新任务学习)。这些理论基础推动了AI大模型在复杂任务中的应用和人工智能的发展。
Qt6学习笔记十四(文件读写、文件信息读取)
Qt6学习笔记十四(文件读写、文件信息读取)
545 0
|
传感器 搜索推荐 算法
淘宝iOS拍立淘微距能力探索与实现
画面模糊问题的源头也是来自用户的微距体验不佳,我们对问题深入分析,适当拆解。通过 Apple Development Doc 的查阅及实践,一步步抽丝剥茧,最终完美解决用户的体验痛点,也为我们自身沉淀了展示微距的能力。
1139 1