第1章 绪论 1
1.1 分布式计算与分布式系统 1
1.1.1 分布式计算简介 1
1.1.2 分布式系统的实例 2
1.1.3 分布式系统的目标 4
1.2 云计算 5
1.2.1 简介 5
1.2.2 云计算的优点和缺点 7
1.3 本书概要 10
1.4 小结 11
习题 12
第一篇 分布式系统 15
第2章 分布式系统入门 15
2.1 分布式系统的定义 15
2.1.1 分布式与集中式 15
2.1.2 分布式与计算机网络 16
2.1.3 分布式系统层次结构 17
2.1.4 分布式系统分类 18
2.2 分布式系统中的软硬件 19
2.2.1 硬件 19
2.2.2 软件 20
2.3 分布式系统中的主要特征 21
2.3.1 容错性 21
2.3.2 安全性 22
2.4 小结 23
习题 23
第3章 客户—服务器端架构 25
3.1 客户—服务器模式的基本概念和优点 25
3.1.1 客户—服务器模式的基本概念 25
3.1.2 客户—服务器模式优点 26
3.2 客户—服务器端架构和体系结构 26
3.2.1 面向连接服务与无连接服务 26
3.2.2 应用程序的层次结构 27
3.2.3 客户—服务器模型体系结构 29
3.3 客户—服务器模型的进程通信 32
3.3.1 进程通信中客户—服务器模型的实现方法 32
3.3.2 客户—服务器模型的进程通信协议 34
3.4 客户—服务器端模型的变种 37
3.4.1 移动代码 37
3.4.2 移动代理 38
3.4.3 网络计算机 39
3.4.4 瘦客户 40
3.4.5 移动设备和自组网络 40
3.5 小结 41
习题 42
第二篇 云计算技术 45
第4章 分布式云计算概述 45
4.1 云计算入门 45
4.1.1 云计算的定义 45
4.1.2 云计算的发展历史 46
4.1.3 云计算的特点 48
4.2 云服务 49
4.2.1 使用云平台的理由 49
4.2.2 云平台的服务类型 50
4.2.3 云平台服务的安全性 51
4.2.4 云平台服务的供应商 51
4.2.5 云平台服务的优势和面临的挑战 54
4.3 云计算比较 55
4.3.1 集群计算和云计算 55
4.3.2 网格计算和云计算 57
4.3.3 效用计算和云计算 59
4.3.4 并行计算、分布计算和云计算 60
4.4 小结 61
习题 62
第5章 Google公司的三大技术 63
5.1 Google文件系统 63
5.1.1 前言 63
5.1.2 设计概要 64
5.1.3 系统交互 68
5.1.4 主控服务器操作 69
5.1.5 容错和检测 70
5.2 Bigtable技术 71
5.2.1 Bigtable简介 71
5.2.2 Bigtable数据模型 72
5.2.3 API 73
5.2.4 Bigtable所依赖的框架 74
5.2.5 Bigtable实现的关键 75
5.2.6 Bigtable性能优化方案 78
5.2.7 Bigtable应用实例 81
5.2.8 经验总结 83
5.3 MapReduce技术 84
5.3.1 前言 84
5.3.2 编程模型 85
5.3.3 实例 85
5.3.4 输入输出类型 85
5.3.5 更多实例 86
5.3.6 MapReduce执行 86
5.4 小结 89
习题 89
第6章 Yahoo!公司的云平台技术 91
6.1 什么是PNUTS——灵活通用的表存储平台 91
6.1.1 前言 91
6.1.2 PNUTS概述 92
6.1.3 PNUTS的设计和功能 93
6.1.4 PNUTS的系统结构 93
6.1.5 PNUTS的数据存储和检索 94
6.1.6 副本和一致性 95
6.1.7 其他数据库系统功能 97
6.1.8 数据库服务 98
6.2 Pig系统简述 98
6.2.1 Pig的定义 98
6.2.2 Pig简介 98
6.3 ZooKeeper系统简述 99
6.3.1 什么是ZooKeeper 99
6.3.2 ZooKeeper项目介绍 99
6.4 小结 100
习题 100
第7章 Greenplum数据库技术 101
7.1 什么是Greenplum 101
7.2 Greenplum分析数据库 101
7.3 Greenplum数据库的体系结构 102
7.3.1 无共享大规模并行处理体系结构 102
7.3.2 Greenplum的分段单元服务 103
7.3.3 数据分布和并行扫描 103
7.3.4 容错能力和先进的复制技术 104
7.3.5 全局并行查询优化技术 105
7.3.6 gNet软件互联 105
7.3.7 并行数据流引擎 106
7.3.8 统一的分析处理 107
7.3.9 基于标准,建立在开源PostgreSQL数据库系统之上 107
7.4 Greenplum的关键特性和优点 107
7.5 小结 108
习题 108
第8章 Amazon公司的Dynamo技术 109
8.1 Dynamo初步介绍 109
8.2 Dynamo的背景资料 110
8.2.1 系统的假设和需求 110
8.2.2 服务层协议 111
8.2.3 设计考虑因素 112
8.3 Dynamo系统体系结构 113
8.3.1 系统接口 114
8.3.2 分割算法 114
8.3.3 复制 115
8.3.4 数据版本 116
8.3.5 Dynamo中的get()和put()的操作 118
8.3.6 临时性故障处理 118
8.3.7 处理永久的错误:同步复制 119
8.3.8 成员关系和故障检测 119
8.3.9 增加删除存储结点 120
8.4 小结 121
习题 121
第9章 IBM公司的云计算技术 122
9.1 IBM公司的云计算概述 122
9.2 云风暴 123
9.3 智能商业服务 124
9.4 智慧地球计划 124
9.5 Z系统 125
9.6 虚拟化的动态基础架构技术 126
9.6.1 虚拟化 127
9.6.2 虚拟化的云计算技术 128
9.6.3 实现虚拟化策略的关键解决方案 129
9.7 小结 132
习题 132
第三篇 分布式云计算的程序开发 135
第10章 Hadoop系统 135
10.1 Hadoop简介 135
10.1.1 Hadoop系统的由来 135
10.1.2 Hadoop的作用 135
10.1.3 Hadoop的优势 136
10.1.4 Hadoop应用现状及发展趋势 136
10.2 Hadoop项目及其结构 137
10.3 Hadoop体系结构 139
10.4 Hadoop集群安全策略 141
10.5 小结 143
第11章 MapReduce详解 145
11.1 MapReduce简介 145
11.2 MapReduce计算模型 146
11.2.1 MapReduce Job 146
11.2.2 Hadoop中hello world程序 147
11.2.3 运行MapReduce应用程序 150
11.2.4 新的API 152
11.2.5 MapReduce的数据流和控制流 154
11.3 MapReduce工作机制 155
11.3.1 MapReduce作业的执行流程 155
11.3.2 提交作业 156
11.3.3 初始化作业 158
11.3.4 分配任务 160
11.3.5 执行任务 162
11.3.6 更新任务执行进度和状态 163
11.3.7 完成作业 164
11.4 开发MapReduce应用程序 164
11.4.1 系统参数的配置 165
11.4.2 配置开发环境 167
11.4.3 编写MapReduce程序 168
11.4.4 本地测试 170
11.4.5 在集群上运行 170
11.5 小结 173
第12章 HDFS详解 174
12.1 HDFS简介 175
12.2 HDFS的相关概念 176
12.3 HDFS的体系结构 177
12.4 HDFS的基本操作 179
12.4.1 HDFS的命令行操作 179
12.4.2 HDFS的Web界面 180
12.5 HDFS中的读写数据流 180
12.5.1 文件的读取 180
12.5.2 文件的写入 182
12.5.3 一致性模型 183
12.6 小结 184
第13章 基于HBase系统的开发 186
13.1 HBase简介 186
13.2 HBase体系结构 187
13.2.1 HRegion 187
13.2.2 HRegion Server 188
13.2.3 HBase Master 189
13.2.4 ROOT表和META表 189
13.2.5 HBase与ZooKeeper 190
13.3 HBase数据模型 190
13.3.1 数据模型 190
13.3.2 概念视图 191
13.3.3 物理视图 191
13.4 HBase与HDFS 192
13.5 Java API与HBase编程 192
13.5.1 Java API简介 192
13.5.2 HBase编程 198
13.6 小结 201
第14章 基于Hive系统的开发 202
14.1 Hive简介 202
14.1.1 Hive的数据存储 202
14.1.2 Hive的元数据存储 204
14.2 Hive QL 204
14.2.1 数据定义(DDL)操作 204
14.2.2 数据管理(DML)操作 214
14.2.3 SQL操作 216
14.2.4 Hive QL使用实例 219
14.3 Hive网络接口 221
14.3.1 Hive网络接口配置 221
14.3.2 Hive网络接口操作实例 222
14.4 Hive编程 225
14.5 Hive优化 228
14.6 小结 230
第15章 基于Google App Engine系统的开发 231
15.1 Google App Engine简介 231
15.1.1 Google App Engine基本功能 231
15.1.2 Google App Engine环境配置 233
15.1.3 Google App Engine资源配额 235
15.2 如何使用Google App Engine 235
15.2.1 Google App Engine Java SDK使用 236
15.2.2 Google App Engine Python SDK使用 250
15.3 基于Google App Engine的应用程序开发实例 256
15.4 小结 261
习题 261
第16章 基于Windows Azure系统的开发 263
16.1 微软公司的云计算概述 263
16.1.1 微软公司的云计算战略 263
16.1.2 微软公司的动态云计算解决方案 264
16.2 Windows Azure平台简介 267
16.2.1 Windows Azure 268
16.2.2 SQL Azure 271
16.2.3 .NET服务 273
16.3 Windows Azure服务使用 275
16.3.1 Windows Azure环境配置 276
16.3.2 开发GuestBook应用程序 276
16.3.3 发布GuestBook应用程序 287
16.4 小结 289
习题 290
附录A 云计算在线检测平台 291
A.1 平台介绍 291
A.2 结构和功能 291
A.2.1 前台用户接口的结构和功能 292
A.2.2 后台程序运行的结构和功能 293
A.2.3 平台程序过滤功能 293
A.3 检测流程 295
A.4 使用介绍 296
A.4.1 功能使用 296
A.4.2 返回结果介绍 297
A.4.3 使用注意事项 298
A.5 小结 299
技术名词索引 300
参考文献 306
后记 316