google云计算体系架构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、在编程的时候,开发者需 要编写两个函数:
Map:(in_key, in_value) Reduce:(key,[value 1,value 2…]) 2、Map操作产生结果是 <key,value>对
Map
Map
……
Map
Reduce
……
Reduce
3、在Map,Reduce之间系 统把同一Key归类到Reduce
Google云计算平台技术架构
分布式文件系统 Google Distributed File System 并行数据处理 MapReduce 分布式锁 Chubby 结构化数据表 BigTable
Google云计算应用
MapReduce GFS BigTable Chubby
12
将 在 第 二 章 详 细 介 绍
结果 1 结果R
3、Reduce操作对相同的Key 进行归类处理
29
MapReduce实现机制
用户程序
(1)分割 (1)分割 (1)分割
Master
(2)指派Map 工作机M (2)指派Reduce (6)写入文件
工作机 R 工作机 R
输出文件0
片段1
片段2 片段3 片段4 输入文件
(3)Read 工作机M
15
16
Google设计GFS的动机
• Google需要支持海量数据存储的文件系统
–购臵昂贵的分布式文件系统与硬件?
是否可以在一堆廉价且不可靠的硬件上构建可靠的 分布式文件系统?
17
GFS的设计思路
1. GFS设计原则:
机器失效不能视为异常现象 能应付对大型/超大型文件处理 支持大量用户同时访问
Google云计算原理
Reached Our Goal
认识云计算(理解)
理解Google 云计算实现原理(难点) 可独立在GAE上开发云服务应用
了解TMF?以及云未来的发展(了解)
2
提 纲
1
初识云计算
2 3
4
Google云计算原理
GAE平台部署云服务
TM Forum 对云态度
3
We have a dream……
34
MapReduce容错机制
背景
MapReduce设计初衷:由普通PC组成的集群来处理超大规模的 数据,所以有效的错误保障机制是必不可少
Worker容错
Master周期性的ping每个worker
Master容错
Master周期性的将Master的数据结构的写入磁盘,即检查点 (checkpoint) Master数据结构包括: Map和Reduce任务的状态(空闲、工作 中或完成),以及Worker机器(非空闲任务的机器)的标识。
三类元数据:命名空间(目录结构)、Chunk与文件名的映射 以及Chunk副本的位臵信息 前两类通过日志提供容错,Chunk副本信息存储于其它Chunk Server。这样Master出现故障时可恢复
23
GFS实验效果图
Master
Master Client 1
Client 2
路由器 1
路由器 2
22
GFS容错机制
Chunk Server容错
每个Chunk有多个存储副本(默认是3个),分别存储于不通的 服务器上 每个Chunk又划分为若干Block(64KB),每个Block对应一个 32bit的校验码,保证数据正确(若某个Block错误,则转移至 其他Chunk副本)
Master容错
ChunkServer 1 ChunkServer 2 ……
Client 16
ChunkServer 16
24
Google云计算原理
分布式文件系统GFS 并行数据处理模型MapReduce 分布式锁服务Chubby 分布式数据库BigTable Google云计算应用
MapReduce
GFS
BigTable
1. Google的云计算思路
应用向互联 网迁移 数据向互联 网迁移
计算能力向 互联网迁移
存储空间向 互联网迁移
“浏览器=操作系统”
9
Google 云计算PaaS
2. 隶属PaaS的Google云计算
属于部署在云端的应用执行环境 支持Python和Java两种语言
通过SDK调用Google的各种服务。如Google Map、Mail等
缺点:有冗余
21
GFS架构的特点
采用中心服务器模式Master
可以方便地增加Chunk Server Master掌握系统内所有Chunk Server的情况,方便进行 负载均衡 不存在元数据的一致性问题
不缓存数据
必要性:Client流式读取,非重复读写 可行性:Master本身管理多个Server,很复杂
2. GFS组成
GFS集群:一个的Master和多个ChunkServer(块服务器)组成, 并可以多客户端Client访问
3. GFS设计要点
每个文件拆成若干个64M文件块Chunk组成 每个Chunk都由Master根据其创建时间指定Chunk Handle(64) 文件块被保存在ChunkServer本地磁盘中 缺省情况下3处热备份Chunk块文件 18
(4)本地存储
输出文件1
(5)远程读取
工作机M
Map状态
本地存储
30
Reduce状态
输出文件
单词计数 体现M/R算法
输入数据:
Hello World Bye World Hello China Bye China Hello Si-tech Bye Si-tech
MapReduce
Hello :3 Bye :3 China :2 World :2 Si-tech:2
<Bye 1>
Fold <World 1> <China 1>
<Bye 1>
<Bye 1>
<World 1> <China 1> <Si-tech 1>
Байду номын сангаас
<Bye 1>
<China 1> <Bye 1> <Si-tech 1>
<Si-tech 1>
33
5) Fold输出 <Hello 1> <Bye 1> <World 1> <China 1> <Si-tech 1> <Hello 1> <Hello 1> <Bye 1> <Bye 1> <World 1> <China 1> <Si-tech 2> <Si-tech 1> Reduce Reduce输出 <Hello 3> <Bye 3> <World 2> <China 2>
分割 分割
KEY VALUE
KEY VALUE
3) Hello World Bye World Hello China Bye China Hello Si-tech Bye Si-tech
MAP
<Hello 1> <World 1>
<Bye 1> <World 1> <Bye 1> <China 1> <Bye 1> <Si-tech 1>
GFS的设计思路
4. Client职责
包含文件系统的API 负责和ChunkServer和Master通信 代表应用程序进行读写操作 Client和Master进行元数据操作 Client和ChunkServer进行文件数据操作
5. Master职责
负责管理所有文件系统的元数据 元数据包括:命名空间,访问控制信息,文件到Chunk的映射信 息等
1) Map(Key,Value) { for( each world „world‟ in value) collect(„world‟,1); } Reduce(Key,Value[ ]) { int count = 0; for(each w in value) count ++; collect(Key,count); }
云计算概念入门
13
提 纲
1
初识云计算
2 3
4
Google云计算原理
GAE平台部署云服务
TM Forum 对云态度
14
Google云计算原理
分布式文件系统GFS 并行数据处理模型MapReduce 分布式锁服务Chubby 分布式数据库BigTable Google云计算应用
MapReduce GFS BigTable Chubby
31
2)
分割
Hello World Bye World Hello China Bye China Hello Si-tech Bye Si-tech
KEY VALUE
Hello World Bye World Hello China Bye China Hello Si-tech Bye Si-tech
MAP
<Hello 1>
<China 1>
MAP
<Hello 1> <Si-tech 1>
32
4)
Map输出 <Hello 1> <World 1> <Hello 1> <China 1> <Hello 1> <Si-tech 1> <Bye 1> <World 1> <Hello 1>
Fold输出 <Hello 1> <Hello 1>
Chubby
25
并行计算基础
摩尔定律正在走向终结…
单芯片容纳晶体管的增加,对制造工艺提出要求 CPU制造18nm技术,电子泄漏问题 CPU主频已达3GHz时代,难以继续提高 散热问题(发热太大,且难以驱散) 功耗太高
未来的发展:多核
26
什么样的问题适合并行计算?
斐波那契序列(Fibonacci) X
GFS数据块服务器 Linux文件系统
GFS数据块服务器 Linux文件系统
……
返回数据信息
……
20
……
Question
文件为什么要被化分为64M?
Answer:
1、可以减少Client和Master的之间的交互,减少Master的负载 2、客户端可以在一个Chunk中完成许多操作 3、可以减少TCP三次握手时间。另外这些信息都要被Master管理 的
用户可快速、廉价(可免费使用限定的流量和存储)地部署 自己开发的应用(如创新的网站、游戏等)
在下一章将具体介绍GAE具体的应用
10
Google 云计算SaaS
3. 隶属SaaS的Google云计算
提供在线“Word、Excel、PPT”
提供在线MAP 提供在线日历管理 ……
11
Google如何实现云?
计算URL访问频率 Y
Map函数处理日志中web页面 请求的记录,然后输出(URL,1)。 Reduce函数把相同URL的 value值都累加起来,产生 (URL,记录总数)结果。
27
Google为什么需要MapReduce?
Google拥有海量数据,并且需要快速处理
什么是MapReduce?
简单存储服务S3为企业提供存储服务
1GB数据存放1个月为0.15美元
2. Amazon的IaaS运用实例
7
亚马逊IaaS应用案例:纽约时报
使用亚马逊云计算服务
效果:在不到 24个小时的时间里处理 了1100万篇文章 费用:累计花费240美元
利用自己服务器
时间:数月时间
费用:多得多的费用
8
Google 云计算
Jeffery Dean设计一个新的抽象模型, 使 我们只要执行的简单计算,而将并行化、 容错、数据分布、负载均衡的等杂乱细节 放在一个库里,使并行编程时不必关心它 们这就是MapReduce
28
Google MapReduce 架构设计师 Jeffrey Dean
Google 并行运算编程模型
原始数据 1 原始数据 2 原始数据 M
X as a service
SaaS 应用云
(代表:salesforce的CRM)
PaaS 平台云
(代表:Google App Engine)
IaaS基础设施云
(代表:亚马逊的S3)
6
Amazon 云计算
1. Amazon的IaaS云计算思路
弹性计算云EC2为企业提供计算服务
每个服务器租用1小时为0.1美元
6. ChunkServer职责
负责存储chunk文件块 Linux文件系统
19
GFS的系统架构
应用程序 GFS客户端
文件名,chunk索引
GFS主服务器 文件命名空间 /foo/bar
Chunk 2EEE
Chunk句柄和位置
标注:
控制信息
数据信息
向数据块服务器发指令 返回数据块服务器状态 Chunk句柄,查找数据
愿景:
计算机的服务能力可以作为一种商品进行流通。 就像水、电、 气一样取之方便,费用低廉
4
云计算定义 云计算:是一种
商业计算模型。 它将计算任务分 布在大量计算机 构成的资源池上, 使各种应用系统 能够按需获取计 算力、存储空间 和信息服务。
5
图:云计算概念模型
云计算服务的部署形式
公共云 (服务提供商 – 互连网) 私有云 (数据中心 – 内部网) 混合云 (公共和私有)