第1章 绪论 1
1.1 分布式计算概念 1
1.1.1 定义 1
1.1.2 优缺点 1
1.1.3 经典的分布式计算项目 2
1.2 分布式计算模式 4
1.2.1 单机计算 5
1.2.2 并行计算 5
1.2.3 网络计算 6
1.2.4 对等计算 6
1.2.5 集群计算 7
1.2.6 网格计算 7
1.2.7 云计算 7
1.2.8 雾计算 8
1.2.9 边缘计算 9
1.2.10 大数据计算 9
1.3 CAP定理 11
1.3.1 CAP定理历史 11
1.3.2 CAP定理应用 12
1.3.3 CAP问题的实例 13
习题 14
第2章 分布式计算编程基础 15
2.1 进程间通信 15
2.1.1 进程间通信概念 15
2.1.2 IPC原型与示例 16
2.2 Socket编程 17
2.2.1 Socket概述 17
2.2.2 流式Socket编程 18
2.3 RMI编程 25
2.3.1 RMI概述 25
2.3.2 RMI基本分布式应用 26
2.4 P2P编程 35
习题 44
第3章 云计算原理与技术 47
3.1 云计算概述 47
3.1.1 云计算起源 47
3.1.2 云计算的概念与定义 48
3.1.3 云计算与分布式计算 49
3.1.4 云计算分类 51
3.2 云计算关键技术 54
3.2.1 体系结构 54
3.2.2 数据存储 56
3.2.3 计算模型 58
3.2.4 资源调度 59
3.2.5 虚拟化 60
3.3 Google云计算原理 61
3.3.1 GFS 61
3.3.2 MapReduce 61
3.3.3 BigTable 63
3.3.4 Dremel 66
3.4 亚马逊云服务 69
3.4.1 亚马逊云平台存储架构 69
3.4.2 EC2、S3、SimpleDB等组件 70
3.5 基于亚马逊云的大数据分析案例 76
3.5.1 亚马逊云平台存储架构 76
3.5.2 亚马逊云的Web服务器日志大数据分析案例 79
3.6 阿里云 93
3.6.1 飞天开放平台架构 93
3.6.2 开放云计算服务ECS 96
3.6.3 开放存储服务OSS和CDN 97
3.6.4 开放结构化数据服务OTS 99
3.6.5 关系型数据库(RDS) 101
3.6.6 开放数据处理服务(ODPS) 101
习题 103
第4章 云计算编程实践 104
4.1 CloudSim体系结构和API介绍 104
4.1.1 CloudSim体系结构 104
4.1.2 CloudSim 3.0 API介绍 110
4.2 CloudSim环境搭建和使用方法 113
4.2.1 环境配置 114
4.2.2 运行样例程序 114
4.3 CloudSim扩展编程 117
4.3.1 调度策略的扩展 118
4.3.2 仿真核心代码 120
4.3.3 平台重编译 124
4.4 CloudSim的编程实践 125
4.4.1 CloudSim任务调度编程 125
4.4.2 CloudSim网络编程 132
4.4.3 CloudSim能耗编程 135
4.5 MultiRECloudSim 147
4.5.1 MultiRECloudSim体系结构和原理 147
4.5.2 MultiRECloudSim的API 153
4.5.3 MultiRECloudSim的使用方法 156
4.6 云环境任务调度编程实践 170
4.6.1 云计算的资源管理 170
4.6.2 云任务调度模拟实验 173
习题 180
第5章 云存储技术 182
5.1 存储基础知识 182
5.1.1 存储组网形态 182
5.1.2 RAID 187
5.1.3 磁盘热备 194
5.1.4 快照 195
5.1.5 数据分级存储概念 196
5.2 云存储概念与技术原理 197
5.2.1 分布式存储 198
5.2.2 存储虚拟化 204
5.3 对象存储技术 208
5.3.1 对象存储架构 208
5.3.2 传统块存储与对象存储 209
5.3.3 对象 209
5.3.4 对象存储系统组成 211
5.4 存储技术趋势 213
5.4.1 存储虚拟化 213
5.4.2 固态硬盘 213
5.4.3 重复数据删除 214
5.4.4 语义化检索 214
5.4.5 存储智能化 214
5.4.6 混合存储系统 215
习题 215
第6章 大数据技术原理与平台 216
6.1 大数据概述 216
6.1.1 大数据产生的背景 216
6.1.2 大数据的定义 216
6.1.3 大数据的4V特征 217
6.2 大数据存储平台 217
6.2.1 HDFS 217
6.2.2 HBase 226
6.2.3 Cassandra 237
6.2.4 Redis 245
6.2.5 MongoDB 251
6.3 大数据计算模式 259
6.3.1 MapReduce 259
6.3.2 Spark 264
6.3.3 流式计算 272
6.4 典型大数据分析管理平台 278
6.4.1 Cloudera Impala 279
6.4.2 Hortonworks Data Platform 281
6.4.3 HadoopDB 298
6.5 大数据并行计算编程实践 300
6.5.1 基于MAPREDUCE程序实例(HDFS) 300
6.5.2 基于MAPREDUCE程序实例(HBase) 307
6.5.3 基于Spark的程序实例 311
6.5.4 基于Impala的查询实践 316
6.6 大数据研究与发展方向 318
6.6.1 数据的不确定性与数据质量 318
6.6.2 跨领域的数据处理方法的可移植性 319
6.6.3 数据处理的时效性保证——内存计算 319
6.6.4 对于流式数据的实时处理 320
6.6.5 大数据应用 321
6.6.6 大数据发展趋势 323
习题 324
第7章 实时医疗大数据分析案例 326
7.1 案例背景与需求概述 326
7.1.1 背景介绍 326
7.1.2 基本需求 326
7.2 设计方案 328
7.2.1 ETL 328
7.2.2 非格式化存储 329
7.2.3 流处理 329
7.2.4 训练模型与结果预测 329
7.3 环境准备 329
7.3.1 节 点规划 330
7.3.2 软件选型 331
7.4 实现方法 332
7.4.1 使用Kettle/Sqoop等ETL工具,将数据导入HDFS 332
7.4.2 基于Spark Streaming开发Kafka连接器组件 338
7.4.3 基于Spark MLlib开发数据挖掘组件 345
7.5 不足与扩展 349
习题 350
第8章 保险大数据分析案例 351
8.1 案例背景与需求概述 351
8.1.1 背景介绍 351
8.1.2 基本需求 351
8.2 设计方案 354
8.2.1 基于GraphX的并行家谱挖掘算法 354
8.2.2 基于分片技术的随机森林算法 356
8.2.3 基于内存计算的FP-Growth关联规则挖掘算法 359
8.3 环境准备 360
8.4 实现方法 365
8.4.1 基于GraphX的并行家谱挖掘 365
8.4.2 基于分片技术的随机森林模型用户推荐 367
8.4.3 基于FP-Growth关联规则挖掘算法的回归检验 371
8.4.4 结果可视化 376
8.5 不足与扩展 381
习题 382
第9章 基于Spark聚类算法的网络流量异常检测 383
9.1 基本需求与数据说明 383
9.1.1 基本需求 383
9.1.2 数据说明 384
9.2 设计方案 386
9.2.1 聚类问题描述 386
9.2.2 系统整体架构和算法设计 386
9.2.3 数据预处理 387
9.2.4 聚类算法 388
9.2.5 聚类质量评估算法 388
9.2.6 检测算法 389
9.3 实现方法和程序设计 389
9.3.1 搭建Spark集群实验平台 390
9.3.2 程序运行说明 390
9.3.3 数据预处理 391
9.3.4 基于R的数据分析和可视化 392
9.3.5 聚类算法 394
9.3.6 聚类质量评估 394
9.3.7 异常检测 395
9.4 结果展示 396
9.4.1 Spark平台说明与作业提交演示 396
9.4.2 聚类算法及其质量评估 397
9.4.3 有效性分析 398
9.4.4 示例说明 399
9.5 展望 399
习题 400
第10章 基于Hadoop的宏基因组序列比对计算 401
10.1 相关背景介绍与基本需求 401
10.1.1 相关背景 401
10.1.2 基本需求 404
10.2 设计方案 404
10.2.1 串行程序分析 404
10.2.2 并行程序设计 405
10.3 实现方法 406
10.3.1 自定义Hadoop Streaming Inputformat 406
10.3.2 修改SOAPaligner程序的输入文件函数 408
10.4 环境建立和实验数据说明 410
10.4.1 案例环境 410
10.4.2 实验数据 410
10.5 结果展示 411
10.5.1 测试方法 411
10.5.2 测试结果和分析 412
习题 412
第11章 基于细胞反应大数据的生物效应评估计算 413
11.1 相关背景介绍与基本需求 413
11.1.1 相关背景 413
11.1.2 基本需求 414
11.2 设计方案 414
11.2.1 基本思路 414
11.2.2 设计框架 415
11.3 环境建立和实验数据说明 416
11.3.1 案例环境 416
11.3.2 实验数据 417
11.4 实现方法 418
11.4.1 算法分析 418
11.4.2 基因谱两两比对——富集积分矩阵并行化计算 422
11.4.3 基因谱聚类分析——KMedoids算法并行化 428
11.5 结果展示 429
11.5.1 基因谱两两比对——计算富集积分矩阵实验分析 429
11.5.2 基因谱聚类实验分析 431
习题 432
第12章 基于Spark的海量宏基因组聚类问题分析计算 433
12.1 相关背景介绍与基本需求 433
12.1.1 相关背景 433
12.1.2 基本需求 442
12.2 问题分析与设计方案 444
12.2.1 问题分析 444
12.2.2 设计方案 446
12.3 实现方法 446
12.3.1 基于Spark的相似基因对问题的实现 446
12.3.2 利用LSH加速相似基因对算法 447
12.3.3 基因图的生成 450
12.3.4 图的基本性质分析 451
12.3.5 基因图聚类 451
12.4 环境建立和实验数据说明 454
12.4.1 案例环境 454
12.4.2 实验数据 454
12.5 结果展示 454
12.5.1 LSH方法精确度分析 454
12.5.2 可扩展性分析和加速效果分析 456
12.5.3 基因图顶点的度分布和连通性分析 458
12.5.4 基因图聚类结果分析 459
12.5.5 总结 461
习题 462
参考文献 463