云计算解密:技术原理及应用实践.pdf

云计算解密:技术原理及应用实践.pdf
 

书籍描述

内容简介
作者根据多年从事云计算学术研究和项目实施经历,从分布式计算的角度出发,深入浅出地对云计算的基本概念、云计算的核心实现技术及作者所在研究小组关于云计算的学术研究成果进行阐述。
本书分为三大部分:第一部分为理论篇,主要介绍分布式计算及云计算理论方面的知识;第二部分为技术篇,重点介绍云数据中心的节能技术及作业调度策略,并深入剖析MapReduce框架存在的性能问题及其优化方法;第三部分为实践篇,以PageRank算法和DNA序列拼接算法的实现为例,讲述如何使用云计算解决实际问题,并以图计算框架Hama为例,阐述对开源云计算项目的性能进行评价的方法。附录中介绍了如何搭建云计算研发环境。

编辑推荐
《云计算解密:技术原理及应用实践》作者根据多年从事云计算学术研究和项目实施经历,从分布式计算的角度出发,深入浅出地对云计算的基本概念、云计算的核心实现技术及作者所在研究小组关于云计算的学术研究成果进行阐述。《云计算解密:技术原理及应用实践》既有理论深度,又有实用价值,可作为高校教材使用,也可作为云计算研发人员及相关学科研究者的学习和参考用书。

作者简介
徐保民,北京交通大学副教授,具有多年从事云计算学术研究和项目实施经历,在云计算理论学习和实践应用方面有独到的见解。

目录
理论篇
第1章 绪论3
1.1 计算模式演化3
1.1.1 集中式计算模式3
1.1.2 桌面计算模式4
1.1.3 分布式计算模式4
1.2 分布式计算4
1.2.1 分布式计算概述5
1.2.2 分布式计算结构6
1.2.3 典型分布式计算技术7
1.3 云计算12
1.3.1 云计算的产生背景12
1.3.2 云计算概述13
1.3.3 云计算与网格计算19
1.4 云计算的关键技术21
1.4.1 虚拟化21
1.4.2 资源管理与调度21
1.4.3 文件系统22
1.4.4 数据存储22
1.4.5 云安全22
1.4.6 编程模式23
1.4.7 能耗管理23
1.5 典型云计算平台23
1.5.1 Google云计算平台23
1.5.2 Amazon云计算25
1.5.3 IBM的蓝云平台26
1.5.4 Microsoft云计算27
1.5.5 开源云计算平台29
参考文献32
第2章 并行计算编程模型35
2.1 并行编程模型概述35
2.1.1 共享存储编程模型36
2.1.2 消息传递模型37
2.1.3 分布并行编程模型38
2.2 并行编程模型MapReduce38
2.2.1 MapReduce概述38
2.2.2 MapReduce编程模型40
2.2.3 MapReduce的主要设计思想43
2.2.4 MapReduce执行流程44
2.2.5 MapReduce的核心技术46
2.2.6 MapReduce技术研究47
2.3 集群上的MapReduce实现——Hadoop48
2.3.1 Hadoop项目简介48
2.3.2 Hadoop与Google53
2.3.3 MapReduce运行机制54
2.3.4 MapReduce执行流程60
2.3.5 MapReduce的核心技术62
2.3.6 Hadoop YARN简介63
2.3.7 典型案例剖析65
2.3.8 MapReduce新旧API比较73
2.4 MapReduce模型的其他实现73
2.4.1 多核上的MapReduce实现74
2.4.2 GPU上的MapReduce实现75
参考文献76
第3章 分布式文件系统78
3.1 概述78
3.1.1 什么是分布式文件系统78
3.1.2 分布式文件系统的发展历史79
3.1.3 分布式文件系统的体系结构82
3.1.4 分布式文件系统的关键技术83
3.2 GFS文件系统84
3.2.1 GFS的设计原则84
3.2.2 GFS体系结构87
3.2.3 GFS工作流程88
3.3 HDFS分布式文件系统90
3.3.1 HDFS的设计目标90
3.3.2 HDFS体系结构91
3.3.3 HDFS故障处理94
3.3.4 副本管理94
3.3.5 HDFS工作流程98
3.3.6 HDFS与GFS101
3.3.7 HDFS联盟介绍102
3.4 分布式锁服务Chubby103
3.4.1 一致性问题103
3.4.2 Paxos算法简介104
3.4.3 Chubby概述109
3.4.4 Chubby架构110
3.5 分布式应用协调器Zookeeper112
3.5.1 Zookeeper概述112
3.5.2 Zookeeper的数据结构113
3.5.3 Zookeeper架构114
3.5.4 Zookeeper的工作原理116
3.5.5 Zookeeper应用场景118
3.6 云存储119
3.6.1 概述119
3.6.2 云存储的分类119
3.6.3 云存储的结构模型120
3.6.4 典型云存储系统121
参考文献122
第4章 分布式数据存储系统124
4.1 概述124
4.2 NoSQL数据库简介125
4.2.1 NoSQL的起源与发展125
4.2.2 NoSQL概述126
4.2.3 NoSQL系统架构127
4.2.4 NoSQL的数据模型128
4.2.5 NoSQL的理论基础131
4.2.6 NoSQL数据库体系结构134
4.2.7 NoSQL与SQL的比较135
4.3 面向列存储系统BigTable136
4.3.1 概述136
4.3.2 数据模型137
4.3.3 系统架构138
4.4 面向列存储系统HBase143
4.4.1 HBase概述143
4.4.2 HBase的数据模型143
4.4.3 HBase架构及实现146
4.4.4 HBase与BigTable的比较151
参考文献152
技 术 篇
第5章 云数据中心节能技术157
5.1 数据中心概述157
5.1.1 数据中心发展历史157
5.1.2 数据中心网络结构158
5.1.3 云数据中心160
5.2 云数据中心节能技术161
5.2.1 硬件设施162
5.2.2 系统架构162
5.2.3 软件方式163
5.2.4 数据中心的能耗模型166
5.3 网络感知节能调度算法DENS167
5.3.1 DENS算法原理167
5.3.2 DENS算法实现168
5.3.3 改进的DENS算法169
5.4 基于超图的存储优化节能算法172
5.4.1 问题提出172
5.4.2 CS方法172
5.4.3 基于超图的副本存储优化节能算法174
5.4.4 作业静态分配算法176
5.4.5 动态副本迁移算法的相关分析176
5.4.6 异构集群能效分析177
5.4.7 覆盖集发现算法CS—k178
5.4.8 基于超图的副本节能算法描述178
5.4.9 实验结果及分析182
参考文献186
第6章 Hadoop集群的作业调度189
6.1 集群与作业调度189
6.1.1 集群简介189
6.1.2 作业调度系统192
6.1.3 经典作业调度算法193
6.1.4 PBS作业管理系统196
6.1.5 云环境下的作业调度197
6.2 Hadoop的作业调度算法200
6.2.1 Hadoop作业调度概述200
6.2.2 批处理调度器FIFO203
6.2.3 公平调度器204
6.2.4 计算能力调度器205
6.2.5 其他调度算法207
6.3 基于伯格模型的公平调度算法209
6.3.1 公平性概念209
6.3.2 伯格模型概述209
6.3.3 云计算中资源分配的伯格模型210
6.3.4 基于伯格模型的作业调度模型211
6.3.5 基于伯格模型的作业调度算法217
参考文献223
第7章 MapReduce性能优化225
7.1 概述225
7.1.1 MapReduce性能调优225
7.1.2 MapReduce的性能优化研究227
7.2 MapReduce性能模型231
7.2.1 影响性能指标的因素231
7.2.2 基于I/O成本的性能模型232
7.3 Crunch概述241
7.3.1 Crunch简介241
7.3.2 设计思路242
7.3.3 框架结构245
7.3.4 工作原理246
7.4 Crunch优化248
7.4.1 问题的提出248
7.4.2 Profiling249
7.4.3 基于代价的划分252
7.4.4 Reduce优化253
7.4.5 数据抽样255
7.5 实验与结果分析255
7.5.1 实验设置256
7.5.2 基于MapReduce的协同过滤推荐算法256
7.5.3 验证算法正确性259
7.5.4 验证算法有效性260
参考文献262
实 践 篇
第8章 云环境下的图算法PageRank267
8.1 图计算概述267
8.2 Web挖掘268
8.2.1 Web挖掘概述268
8.2.2 Web图结构分析270
8.3 浅析PageRank算法274
8.3.1 PageRank算法简介274
8.3.2 PageRank算法分析276
8.3.3 使用MapReduce思想计算PageRank值276
8.4 基于MapReduce的PageRank算法278
8.4.1 PageRank算法的MapReduce实现278
8.4.2 利用矩阵分块思想的并行PageRank算法281
8.4.3 PageRank算法实现的改进284
8.4.4 实验及结果分析288
8.5 基于BSP模型的PageRank算法291
8.5.1 BSP模型291
8.5.2 图计算框架Pregel293
8.5.3 PageRank的Pregel实现305
8.5.4 Pregel存在的问题306
参考文献306
第9章 图计算框架Hama309
9.1 Hama简介309
9.2 Hama核心技术310
9.2.1 Hama层次结构310
9.2.2 Hama体系结构311
9.2.3 Hama代码组织313
9.2.4 Hama常用API315
9.2.5 基于YARN的Hama程序执行流程317
9.3 蒙特卡罗算法的实现318
9.3.1 用蒙特卡罗算法求圆周率318
9.3.2 基于Hadoop的蒙特卡罗算法319
9.3.3 基于Hama的蒙特卡罗算法321
9.4 Hadoop与Hama的性能比较323
9.4.1 优势区间323
9.4.2 可用区间325
9.4.3 劣势区间326
9.4.4 综合分析328
参考文献328
第10章 基于MapReduce的DNA序列拼接329
10.1 概述329
10.1.1 生物信息学现状329
10.1.2 序列拼接研究330
10.2 测序技术331
10.2.1 第一代DNA测序技术331
10.2.2 第二代DNA测序技术332
10.2.3 第三代DNA测序技术332
10.3 序列拼接技术332
10.3.1 序列拼接问题333
10.3.2 序列拼接技术333
10.4 repeat问题337
10.4.1 聚类法337
10.4.2 ARACHNE法338
10.4.3 路径相容性法338
10.5 基于MapReduce的欧拉超路并行算法339
10.5.1 算法的选择340
10.5.2 欧拉超路算法拼接流程340
10.5.3 欧拉超路算法各步骤的并行化342
10.5.4 并行欧拉超路算法性能分析346
参考文献350
附录A 云计算仿真器CloudSim353
A.1 CloudSim简介353
A.2 CloudSim体系结构354
A.3 CloudSim核心类介绍356
A.4 CloudSim开发环境搭建357
A.5 仿真步骤361
A.6 样例程序分析363
参考文献368
附录B Hama开发环境的搭建369
B.1 所需软件369
B.2 Hadoop和Hama的安装369
B.3 搭建Hama编程环境377
附录C 分布式Hadoop平台搭建379
C.1 Hadoop系统的安装方式379
C.2 硬件和软件需求379
C.3 搭建步骤380
C.4 运行示例程序382

序言
前言
云计算是当今计算机科学最热门的研究领域之一,它能使许多技术人员开始从单机工作模式向并行计算模式转变。作者以所在研究小组的多年云计算研究工作成果为核心,结合最新云计算技术发展,编写了这部著作。
本书全面、系统地介绍了云计算的基本概念、实现原理及其若干关键技术,结合作者所在研究小组的研究成果,阐述了采用云计算解决实际问题的方法。全书包括10章和3个附录。
第一部分为理论篇(1~4章),着重介绍并行计算编程模型(包括Google公司的MapReduce和Apache的MapReduce)、分布式文件系统(主要包括HDFS和GFS)、分布式数据存储系统(主要包括HBase和BigTable)等云计算核心组件的内部实现细节。
第二部分为技术篇(第5~7章),主要讲解Hadoop MapReduce中的一些高级特性和未来发展趋势,包括云数据中心的节能技术、作业调度机制和Hadoop MapReduce框架的性能优化。
第三部分为实践篇(第8~10章),重点阐述采用MapReduce框架实现PageRank算法的方法、云计算在DNA序列拼接中的应用及对图计算框架Hama的性能进行评价的方法。
另外,本书最后给出了三个附录:附录A重点介绍云仿真器CloudSimd的体系结构、部分核心类、软件安装及仿真步骤等内容,附录B介绍了实施Hama性能评价的实验开发环境搭建,附录C主要对Hadoop的分布式运行模式的环境搭建进行了阐述。
本书是作者所在研究小组多年研究工作的总结,由徐保民主笔。在此,特别感谢曾经参加与云计算研究有关的所有人员,主要包括:马红颜、齐伟、甘兴龙、赵春燕、云希姚、高勋、胡恩召、高进、张海园、延娜、王云峰、黄鹏、谢其扬、辛霆麟、罗干、宏亮、何颖、兑璐、戴昕、牛品菽、李春燕。此外,还要特别感谢美国中佛罗里达大学的Dan C. Marinescu教授、波兰科学院系统研究所的Marcin Paprzycki教授以及国内诸多同行和朋友们长期的大力支持和帮助。
本书的出版得到了电子工业出版社董亚峰老师和北京交通大学计算机与信息技术学院的大力支持,在此一并表示深深的谢意。
由于云计算技术比较前沿、云计算领域发展比较快,加之作者水平所限,难免会存在很多不足和错误,恳请各位读者不吝赐教。作者的电子邮箱为xubaomin@gmail.com。
作者
2014年1月

文摘
版权页:



3.副本管理机制
分布式文件系统通常都是通过一种副本机制来提供容错性,即在分布式文件系统中,文件都被划分成块。对于每块,文件系统并不是只存储一个副本,而是存储一块数据的多个副本,这样如果一个副本丢失,还可以使用其他副本代替,进而达到容错性的效果。
通常文件块的几个副本应尽量存储在不同的服务器上,从概率上减小该文件块丢失的可能性,而且副本的存放地点还要考虑到客户端的读取,应尽量分布在不同的数据中心,使得更多的客户端都可以读取到离自己较近的数据块。同时副本的创建还要考虑时机的问题,当系统十分繁忙的时候,应该首先满足应用的访问需求,而降低副本复制的优先级。当系统空闲时,进行副本复制。
副本的读机制是副本机制的优势所在,在读取其他节点上的文件时,如果本节点上有副本则直接从副本中读取,从而减少网络传输的开销。
4.数据存取方式
数据存取主要涉及文件的分块和文件放置地点的选择两个方面的内容。分布式文件系统文件数据存储所关心的问题是高效的数据分块技术和高效的数据放置方法。
高效的数据分块技术可以提高文件数据存取的并发度,而高效的数据放置策略可以提高文件数据的高可靠性、I/O服务器的负载平衡能力。
多数文件系统采用的分块技术非常简单,就是将文件均分为大小相等的块,然后轮循地放置在所有服务器上。而数据的放置策略,主要涉及数据访问的“距离”,一个好的数据放置策略应能够加快应用对数据的访问速度。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多