Cloud Computing Google云计算原理 电子工业出版社 刘鹏主编《云计算》教材配套课件4.

Slides:



Advertisements
Similar presentations
Google云计算原理与应用(二) 云计算 (第三版) 第 2 章 CLOUD COMPUTING Third Edition
Advertisements

第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
电子工业出版社《云计算(第二版)》配套课件
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
实用操作系统概念 张惠娟 副教授 1.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
基于R和pentaho的全套开源BI平台的实现
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
MariaDB Spider分库分表引擎调研
Goolge的云计算 分布式数据表BigTable.
SVN的基本概念 柳峰
存储系统.
SQL Injection.
Cloud Computing Google云计算原理.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
Online job scheduling in Distributed Machine Learning Clusters
软件工程基础 云计算概论 刘 驰.
数据挖掘工具性能比较.
CPU结构和功能.
Cloud Computing Google云计算原理 电子工业出版社 刘鹏主编《云计算》教材配套课件4.
Windows 7 的系统设置.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
编程作业3:网页正文抽取 (10分).
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
微机系统的组成.
VisComposer 2019/4/17.
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
项目二:HTML语言基础.
Web安全基础教程
ES 索引入门
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
解决“最后1公里”问题.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
Delphi 7.0开发示例.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
Google的云计算 分布式锁服务Chubby.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
VB与Access数据库的连接.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
Presentation transcript:

Cloud Computing Google云计算原理 电子工业出版社 刘鹏主编《云计算》教材配套课件4

主要内容(6学时) 概念回顾 Google云计算背景 分布式文件系统GFS 并行数据处理模型MapReduce 分布式锁服务Chubby 分布式数据库BigTable Google AppEngine Google云计算技术小结

Google的云计算 课程回顾

分布式文件系统GFS GFS的容错措施有哪些?

GFS的容错方法 GFS的容错机制 Chunk Server容错 Master容错(影子节点热备) 每个Chunk又划分为若干Block(64KB),每个Block对应一 个32bit的校验码,保证数据正确(若某个Block错误,则转 移至其他Chunk副本) Master容错(影子节点热备) 三类元数据:命名空间(目录结构)、Chunk与文件名的映 射以及Chunk副本的位置信息 前两类通过日志提供容错,Chunk副本信息存储于Chunk Server,Master出现故障时可恢复

并行数据处理模型MapReduce 1、处理流程 2、分片方式

问题讨论 MapReduce处理流程中 各类文件的存储位置在哪 里? MapReduce的容错方法? MapReduce的处理优化 方法? MapReduce仅能对GFS之上的文件进行处理吗?

灵活的MapReduce 所有步骤均可控,可灵活处理各类分布式问题

云计算应用实践作业调整 除了排序,新增两道题目 使用MapReduce实现倒排索引 输入:100个文本文档 输出:倒排索引 任务 实现算法,给出数据结构描述、执行过程描述等 作业要求同“排序” 要求尽可能提高执行效率,节约网络IO带宽

云计算应用实践作业调整 除了排序,新增两道题目 使用MapReduce实现快速查询 查询目标是存储在BigTable之中的网页数据,给定关键字, 快速查询含有该内容的网页(假定没有倒排索引) 要求 设计BigTable存储方式(表含有哪些列、无需关心数据如何取得) 设计快速查询的MapReduce处理方法 作业要求同“排序”

Google的云计算 分布式锁服务Chubby

Chubby是什么? 主要用于解决分布式一致性问题 粗粒度的分布式锁服务 在一个分布式系统中,有一组的Process,它们需要确定 一个Value。于是每个Process都提出了一个Value,一致 性就是指只有其中的一个Value能够被选中作为最后确定 的值,并且当这个值被选出来以后,所有的Process都需 要被通知到 粗粒度的分布式锁服务 Chubby是Google为解决分布式一致性问题而设计的提供 粗粒度锁服务的文件系统 其他分布式系统可以使用它对共享资源的访问进行同步

Chubby的设计目标 需要实现的特性 不作考虑的特性 高可用性 高可靠性 支持粗粒度的建议性锁服务 支持小规模文件直接存储 高性能 存储能力

Chubby的系统架构

文件系统中文件的权限 文件系统中文件操作的权限有哪些? 这些权限之间的互斥关系是怎样的?

Chubby文件系统 Chubby系统本质上就是一个分布式的、存储大量 小文件的文件系统 Chubby中的锁就是文件 在GFS的例子中,创建文件就是进行“加锁”操作,创建 文件成功的那个server其实就是抢占到了“锁” 用户通过打开、关闭和存取文件,获取共享锁或者独占锁; 并且通过通信机制,向用户发送更新信息

Client与Chubby的通信协议

Chubby的应用 主节点选举 独占锁 共享锁 数据存取应用 获取GFS ChunkServer信息 元数据存储 ……

Goolge的云计算 分布式数据表BigTable

BigTable 为什么需要设计BigTable? BigTable:基于GFS和Chubby的分布式存储系统 Google需要存储的数据种类繁多 网页,地图数据,邮件…… 如何使用统一的方式存储各类数据? 海量的服务请求 如何快速地从海量信息中寻找需要的数据? BigTable:基于GFS和Chubby的分布式存储系统 对数据进行结构化存储和管理 与GFS的联系

Google的需求 数据存储可靠性 高速数据检索与读取 存储海量的记录(若干TB) 可以保存记录的多个版本

假设 与写操作相比,数据记录读操作占绝大多数工作负 载 单个节点故障损坏是常见的 磁盘是廉价的 可以不提供标准接口 Google既能控制数据库设计,又能进行应用系统设计

设计目标 具有广泛的适应性 具有很强的可扩展性 高可用性 简单性 支持Google系列产品的存储需求 根据需要随时加入或撤销服务器 应对不断增多的访问请求 高可用性 单个节点易损,但要确保几乎所有的情况下系统都可用 简单性 简单的底层系统可减少系统出错概率,为上层开发带来便 利

关系数据库中的表是什么样的?有什么特征? 逻辑视图 总体上,与关系数据库中的表类似 关系数据库中的表是什么样的?有什么特征? 关系数据库中的表设计需要遵循什么原则? Row Key Time Stamp Column Contents Column Anchor Column “mime” cnnsi.com my.look.ca “com.cnn.www” T9 CNN T8 CNN.COM T6 “<html>.. “ Text/html T5 t3

数据模型 行 每行数据有一个可排序的关键字和任意列项 字符串、整数、二进制串甚至可串行化的结构都可以作为 行键 表按照行键的“逐字节排序”顺序对行进行有序化处理 表内数据非常‘稀疏’,不同的行的列的数完全目可以大 不相同 URL是较为常见的行键,存储时需要倒排 统一地址域的网页连续存储,便于查找、分析和压缩 mp3.baidu.com/index.asp→com.baidu.mp3/index.asp

数据模型 列 特定含义的数据的集合,如图片、链接等 可将多个列归并为一组,称为族(family) 采用 族:限定词 的语法规则进行定义 fileattr:owning_group”, “fileattr:owning_user”, etc 同一个族的数据被压缩在一起保存 族是必须的,是BigTable中访问控制的基本单元

数据模型 时间戳 “A big table” 通过(row, col, timestamp)查询 保存不同时期的数据,如“网页快照” “A big table” 表中的列可以不受限制地增长 表中的数据几乎可以无限地增加 通过(row, col, timestamp)查询 通过(row, col, MOST_RECENT)查询

数据模型 无数据校验 一致性 每行都可存储任意数目的列 任意类型的数据均可存储 数据的有效性校验由构建于其上的应用系统完成 BigTable不对列的最少数目进行约束 任意类型的数据均可存储 BigTable将所有数据均看作为字符串 数据的有效性校验由构建于其上的应用系统完成 一致性 针对同一行的多个操作可以分组合并 不支持对多行进行修改的操作符

物理视图 Row Key Time Stamp Column: Contents Com.cnn.www T6 Column Anchor Column “mime” cnnsi.com my.look.ca “com.cnn.www” T9 CNN T8 CNN.COM T6 “<html>.. “ Text/html T5 t3 物理视图 Row Key Time Stamp Column: Contents Com.cnn.www T6 “<html>..” T5 T3 Row Key Time Stamp Column: Anchor Com.cnn.www T9 Anchor:cnnsi.com CNN T5 Anchor:my.look.ca CNN.COM Row Key Time Stamp Column: mime Com.cnn.www T6 text/html

物理视图 逻辑上的“表”被划分为若干子表(Tablet) 每个子表存储了table的一部分行 每个Tablet由多个SSTable文件组成 SSTable文件存储在GFS之上 每个子表存储了table的一部分行 元数据:起始行键、终止行键 如果子表体积超过了阈值(如200M),则进行分割

体系结构

主节点的职责 有效缓解单点故障 为每个子表服务器分配子表,对外提供服务 与GFS垃圾回收进行交互,收回废弃的SSTable 探测子表服务器的故障与恢复 负载均衡 有效缓解单点故障

子表服务器故障

子表服务器故障

子表服务器故障

数据访问方式

数据写的流程 任何对子表的写操作都会记录到一个存储在GFS之 上的commit log中 新的数据存储到子表服务器的内存(memtable) 中 次压缩 旧数据存储在SSTable中,而新数据存放在memtable中 当memtable体积超过一定阈值,将形成SSTable,并写 入GFS 每个tablet对应多个SSTable

合并压缩 tablet含有多个SSTable导致查询效率低 合并压缩操作读取多个SSTable,创建一个新的 SSTable来保持其中的最新数据 旧的SSTable删除 如果合并压缩操作完成后,tablet只包含一个SSTable, 那么该操作也称为主压缩

数据存储与读取流程

子表服务器故障恢复 新的故障 恢复方法 子表服务器内存中的memtable丢失 按照tablet将该服务器对应的日志分片 新子表服务器读取对应的分段commit log,并按照日志 修改tablet 删除commit log中已实施的内容 重新对外提供服务

性能优化 局部性群组(Locality Group) 布隆过滤器(Bloom Filter) 根据需要,将原本不存储在一起的数据,以列族为单位存 储至单独的子表 如用户对网站排名、语言等分析信息感兴趣,那么可以将 这些列族放至单独的子表,减少无用信息读取,改善存取 效率 布隆过滤器(Bloom Filter) 什么是布隆过滤器?判断某个元素是否隶属于集合 优点:误判概率低,其存储空间仅为Hash表的1/8至1/4 用于判断列键是否位于SSTable中,快速确定某个列键的 位置

BigTable小结

综合讨论 Google云计算架构中GFS、MapReduce和 BigTable中是否存在集群节点复用的情况? 如何复用? 节点复用的好处有哪些? Google云计算架构的设计对你有哪些启发?有哪 些收获?

Goolge的云计算 Google App Engine

简介 Google App Engine是隶属于PaaS类型的云服务 一个计算环境,支持Python和Java语言 可使用Google的基础服务,如BigTable和GFS等 用户仅需提供应用代码,无需服务器维护 应用程序可根据访问量和数据存储需要的增长轻松进行扩 展

应用程序环境 特性 动态网络服务功能,能够完全支持常用的网络技术 具有持久存储的空间,可支持查询、分类等基本操作 具有自主平衡网络和系统的负载、自动进行扩展的功能 可对用户的身份进行验证,并且支持使用Google账户 发送邮件 具有一个功能完整的本地开发环境,开发人员可以在自 身的计算机上模拟 Google App Engine环境

应用程序环境 通过隔离来保证平台和其他开发者的安全 沙盒 一个虚拟环境 将开发者开发的应用程序隔离在自身的安全可靠的环境中, 该环境和网络服务器的硬件、系统以及物理位置完全无关 仅提供开发人员对基础操作系统的有限访问权限 可以对开发人员进行更多的限制 只能通过网址抓取API和邮件服务API访问其他计算机 其他计算机只能通过HTTP或HTTPS与沙盒应用交互 应用程序无法对平台文件系统进行写入操作,只能读取代码 文件 应用程序必须使用平台的Data Store来存储应用程序运行期 间持续存在的数据 …… 通过隔离来保证平台和其他开发者的安全

平台服务 图像操作API 邮件API Memcache API 网址抓取API 开发人员可通过该API对JPEG和PNG图像进行缩放、裁剪、 旋转和翻转等操作 邮件API 为开发人员开发的应用程序提供电子邮件发送服务 Memcache API 高性能的内存键值缓存,用户可使用应用程序访问该缓存 可提高应用程序的性能并减少数据库的负载 网址抓取API 可以使用HTTP或HTTPS等网址来对数据进行检索

平台服务 用户API 使应用程序与Google帐号集成,支持Google帐号身份认 证 数据库API 为用户提供查询引擎和事务存储服务

Hello World print 'Content-Type: text/plain' print '' print 'Hello, world!'

Goolge的云计算 Google云计算小结

Google云计算小结 Google云计算应用 MapReduce BigTable GFS Chubby 单机PC 磁盘存储 进程管理 锁管理 数据库 Google云平台 GFS MapReduce Chubby BigTable

Google云计算小结 Google云计算应用类型

中国云计算网站 http://www.chinacloud.cn 本讲到此结束 欢迎访问 中国云计算网站 http://www.chinacloud.cn 欢迎使用 《云计算》教材 电子工业出版社 刘鹏 主编