电子工业出版社《云计算(第二版)》配套课件

Slides:



Advertisements
Similar presentations
高级服务器设计和实现 1 —— 基础与进阶 余锋
Advertisements

LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
实用操作系统概念 张惠娟 副教授 1.
Oracle数据库 Oracle 子程序.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
Cell organized Distributed File Storage
基于R和pentaho的全套开源BI平台的实现
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
第二讲 搭建Java Web开发环境 主讲人:孙娜
分布式数据分析算法 杨 旭 数据平台事业部-产品与平台服务.
存储系统.
大学计算机基础 典型案例之一 构建FPT服务器.
网络常用常用命令 课件制作人:谢希仁.
Homework 1(上交时间:10月14号) 倒排索引.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
Online job scheduling in Distributed Machine Learning Clusters
S 数控机床故障诊断与维修.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
大数据介绍及应用案例分享 2016年7月 华信咨询设计研究院有限公司.
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
分布式程序设计 姚斌 计算机科学与工程系 上海交通大学.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
微机系统的组成.
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
姚金宇 MIT SCHEME 使用说明 姚金宇
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
解决“最后1公里”问题.
第4章 Excel电子表格制作软件 4.4 函数(一).
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第4课时 绝对值.
Touch Github = Touch the World
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Cloud Computing Google云计算原理.
Cloud Computing Google云计算原理.
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Zookeeper的应用 Hbase Kafka Twitter Storm Spark—mesos+zookeeper.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
Presentation transcript:

电子工业出版社《云计算(第二版)》配套课件 第2章 Google云计算原理与应用 《云计算(第二版)》购买网址: 当当网:http://product.dangdang.com/product.aspx?product_id=21094102 京东商城:http://book.360buy.com/10658667.html 解放军理工大学 刘鹏 教授主编 华东交通大学 刘鹏 制作

《云计算(第二版)》购买网址: 当当网 京东商城 姊妹力作《实战Hadoop》购买网址: 当当网 京东商城 《云计算(第二版)》购买网址: 当当网 京东商城 《云计算(第二版)》购买网址: 当当网:http://product.dangdang.com/product.aspx?product_id=21094102 京东商城:http://book.360buy.com/10658667.html 姊妹力作《实战Hadoop》购买网址: 当当网 京东商城

提 纲  Google文件系统GFS  分布式数据处理MapReduce  分布式锁服务Chubby 提 纲  Google文件系统GFS  分布式数据处理MapReduce  分布式锁服务Chubby  分布式结构化数据表Bigtable  分布式存储系统Megastore  大规模分布式系统的监控基础架构Dapper  Google应用程序引擎

Google文件系统GFS  系统架构  容错机制  系统管理技术

秘密武器:云计算平台! Google业务 全球最大搜索引擎、Google Maps、Google Earth、Gmail、YouTube等 数据量巨大,且面向全球用户提供实时服务 秘密武器:云计算平台! Google云计算平台技术架构 文件存储,Google Distributed File System,GFS 并行数据处理MapReduce 分布式锁Chubby 分布式结构化数据表BigTable 分布式存储系统Megastore 分布式监控系统Dapper

是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统? GFS设计动机 Google需要一个支持海量存储的文件系统 购置昂贵的分布式文件系统与硬件? 是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统? 为什么不使用当时现存的文件系统? Google所面临的问题与众不同 不同的工作负载,不同的设计优先级(廉价、不可靠的硬件) 需要设计与Google应用和负载相符的文件系统

GFS将容错的任务交给文件系统完成,利用软件的方法解决系统可靠性问题,使存储的成本成倍下降。GFS将服务器故障视为正常现象,并采用多种方法,从多个角度,使用不同的容错措施,确保数据存储的安全、保证提供不间断的数据存储服务 GFS架构是怎样的?

系统架构 Client(客户端):应用程序的访问接口 Master(主服务器):管理节点,在逻辑上只有一个,保存系统的元数据,负责整个文件系统的管理 Chunk Server(数据块服务器):负责具体的存储工作。数据以文件的形式存储在Chunk Server上

客户端首先访问Master节点,获取交互的Chunk Server信息,然后访问这些Chunk Server,完成数据存取工作。这种设计方法实现了控制流和数据流的分离。 Client与Master之间只有控制流,而无数据流,极大地降低了Master的负载。 Client与Chunk Server之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个Chunk Server,从而使得整个系统的I/O高度并行,系统整体性能得到提高。 实现机制 GFS特点有哪些?

GFS特点 采用中心服务器模式 不缓存数据 在用户态下实现 只提供专用接口 可以方便地增加Chunk Server  Master掌握系统内所有Chunk Server的情况,方便进行负载均衡 不存在元数据的一致性问题 不缓存数据 文件操作大部分是流式读写,不存在大量重复读写,使用Cache对性能提高不大  Chunk Server上数据存取使用本地文件系统,若读取频繁,系统具有Cache 从可行性看,Cache与实际数据的一致性维护也极其复杂 在用户态下实现 利用POSIX编程接口存取数据降低了实现难度,提高通用性 POSIX接口提供功能更丰富 用户态下有多种调试工具 Master和Chunk Server都以进程方式运行,单个进程不影响整个操作系统 GFS和操作系统运行在不同的空间,两者耦合性降低 只提供专用接口 降低实现的难度 对应用提供一些特殊支持 降低复杂度

Google文件系统GFS  系统架构  容错机制  系统管理技术

Chunk副本的位置信息(默认有三个副本) Master容错 Name Space,文件系统目录结构 Master Chunk与文件名的映射 Chunk副本的位置信息(默认有三个副本)

单个Master,对于前两种元数据,GFS通过操作日志来提供容错功能 第三种元数据信息保存在各个Chunk Server上,Master故障时,磁盘恢复 GFS还提供了Master远程的实时备份,防止Master彻底死机的情况 Name Space,文件系统目录结构 Master Chunk与文件名的映射 Chunk副本的位置信息

Chunk Server容错 采用副本方式实现Chunk Server容错  每一个Chunk有多个存储副本(默认为三个),分布存储在不同的Chunk Server上用户态的GFS不会影响Chunk Server的稳定性  副本的分布策略需要考虑多种因素,如网络的拓扑、机架的分布、磁盘的利用率等  对于每一个Chunk,必须将所有的副本全部写入成功,才视为成功写入

尽管一份数据需要存储三份,好像磁盘空间的利用率不高,但综合比较多种因素,加之磁盘的成本不断下降,采用副本无疑是最简单、最可靠、最有效,而且实现的难度也最小的一种方法。 Simple, and good enough!

 GFS中的每一个文件被划分成多个Chunk,Chunk的默认大小是64MB Chunk Server存储的是Chunk的副本,副本以文件的形式进行存储 每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)

Google文件系统GFS  系统架构  容错机制  系统管理技术

GFS构建在不可靠廉价计算机之上的文件系统,由于节点数目众多,故障发生十分频繁 大规模集 群安装技术 故障检测技术 系统管理技术 Google采用了多种机制降低服务器能耗,如采用蓄电池代替昂贵的UPS 新的Chunk Server加入时 ,只需裸机加入,大大减少GFS维护工作量 节点动态加入技术 节能技术

小结 简单的,就是最好的!

讨论 GFS有什么问题吗?

分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析

一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。 MapReduce 一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。 “Map(映射)”、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和矢量编程语言借鉴 适合非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等

Google拥有海量数据,并且需要快速处理 全球Web数据 邮件数据 地图数据 卫星照片 ……

简单的问题,计算并不简单! 待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成 计算问题简单,但求解困难 待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成 如何进行并行分布式计算? 如何分发待处理数据? 如何处理分布式计算中的错误? 简单的问题,计算并不简单!

Jeffery Dean设计一个新的抽象模型, 封装并行处理、容错处理、本地化计算、负载均衡的细节,还提供了一个简单而强大的接口 这就是MapReduce Google MapReduce 架构设计师 Jeffrey Dean

分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析

MapReduce运行模型 Map函数——对一部分原始数据进行指定的操作。每个Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化 Reduce操作——对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的结果集

Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据 开发者需编写 两个主要函数 Map: (in_key, in_value)  {(keyj, valuej) | j = 1…k} Reduce: (key, [value1,…,valuem])  (key, final_value) Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据 Map输出结果:一组<key,value>对,这是经过Map操作后所产生的中间结果

Reduce输入参数:(key, [value1,…,valuem]) Reduce工作:对这些对应相同key的value值进行归并处理 开发者需编写 两个主要函数 Map: (in_key, in_value)  {(keyj, valuej) | j = 1…k} Reduce: (key, [value1,…,valuem])  (key, final_value) Reduce输入参数:(key, [value1,…,valuem]) Reduce工作:对这些对应相同key的value值进行归并处理 Reduce输出结果:(key, final_value),所有Reduce的结果并在一起就是最终结果

怎么用MapReduce计算一个大型文本文件中各单词出现次数? Map的输入参数指明了需要处理哪部分数据,以“<在文本中的起始位置,需要处理的数据长度>”表示,经过Map处理,形成一批中间结果“<单词,出现次数>”。而Reduce函数处理中间结果,将相同单词出现的次数进行累加,得到每个单词总的出现次数

分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析

MapReduce操作执行流程图

操作过程 (1)输入文件分成M块,每块大概16M~64MB(可以通过参数决定),接着在集群的机器上执行分派处理程序 (2)M个Map任务和R个Reduce任务需要分派,Master选择空闲Worker来分配这些Map或Reduce任务 (3)Worker读取并处理相关输入块,Map函数产生的中间结果<key,value>对暂时缓冲到内存 (4)中间结果定时写到本地硬盘,分区函数将其分成R个区。中间结果在本地硬盘的位置信息将被发送回Master,然后Master负责把这些位置信息传送给Reduce Worker

操作过程 (5)当Master通知执行Reduce的Worker关于中间<key,value>对的位置时,它调用远程过程,从Map Worker的本地硬盘上读取缓冲的中间数据。当Reduce Worker读到所有的中间数据,它就使用中间key进行排序,这样可使相同key的值都在一起 (6)Reduce Worker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数。Reduce函数的结果写到一个最终的输出文件 (7)当所有的Map任务和Reduce任务都完成的时候,Master激活用户程序。此时MapReduce返回用户程序的调用点

MapReduce容错 MapReduce容错 Master会周期性地设置检查点(checkpoint),并导出Master的数据。一旦某个任务失效,系统就从最近的一个检查点恢复并重新执行 Master周期性地给Worker发送ping命令,若没有应答,则认为Worker失效,终止其任务调度,把该任务调度到其他Worker上重新执行

分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析

假设有一批海量的数据,每个数据都是由26个字母组成的字符串,原始的数据集合是完全无序的,怎样通过MapReduce完成排序工作,使其有序(字典序)呢? 排序通常用于衡量分布式数据处理框架的数据处理能力

对原始的数据进行分割(Split),得到N个不同的数据分块

每一个数据分块都启动一个Map进行处理。采用桶排序的方法,每个Map中按照首字母将字符串分配到26个不同的桶中

按照首字母将Map中不同桶中的字符串集合放置到相应的Reduce中进行处理。具体来说就是首字母为a的字符串全部放在Reduce1中处理,首字母为b的字符串全部放在Reduce2,以此类推

谢 谢! http://www.chinacloud.cn