内容简介
理论篇
第1章 绪论
1.1 计算模式演化
1.1.1 集中式计算模式
1.1.2 桌面计算模式
1.1.3 分布式计算模式
1.2 分布式计算
1.2.1 分布式计算概述
1.2.2 分布式计算结构
1.2.3 典型分布式计算技术
1.3 云计算
1.3.1 云计算的产生背景
1.3.2 云计算概述
1.3.3 云计算与网格计算
1.4 云计算的关键技术
1.4.1 虚拟化
1.4.2 资源管理与调度
1.4.3 文件系统
1.4.4 数据存储
1.4.5 云安全
1.4.6 编程模式
1.4.7 能耗管理
1.5 典型云计算平台
1.5.1 Google云计算平台
1.5.2 Amazon云计算
1.5.3 IBM的蓝云平台
1.5.4 Microsoft云计算
1.5.5 开源云计算平台
参考文献
第2章 并行计算编程模型
2.1 并行编程模型概述
2.1.1 共享存储编程模型
2.1.2 消息传递模型
2.1.3 分布并行编程模型
2.2 并行编程模型MapReduce
2.2.1 MapReduce概述
2.2.2 MapReduce编程模型
2.2.3 MapReduce的主要设计思想
2.2.4 MapReduce执行流程
2.2.5 MapReduce的核心技术
2.2.6 MapReduce技术研究
2.3 集群上的MapReduce实现——Hadoop
2.3.1 Hadoop项目简介
2.3.2 Hadoop与Google
2.3.3 MapReduce运行机制
2.3.4 MapReduce执行流程
2.3.5 MapReduce的核心技术
2.3.6 Hadoop YARN简介
2.3.7 典型案例剖析
2.3.8 MapReduce新旧API比较
2.4 MapReduce模型的其他实现
2.4.1 多核上的MapReduce实现
2.4.2 GPU上的MapReduce实现
参考文献
第3章 分布式文件系统
3.1 概述
3.1.1 什么是分布式文件系统
3.1.2 分布式文件系统的发展历史
3.1.3 分布式文件系统的体系结构
3.1.4 分布式文件系统的关键技术
3.2 GFS文件系统
3.2.1 GFS的设计原则
3.2.2 GFS体系结构
3.2.3 GFS工作流程
3.3 HDFS分布式文件系统
3.3.1 HDFS的设计目标
3.3.2 HDFS体系结构
3.3.3 HDFS故障处理
3.3.4 副本管理
3.3.5 HDFS工作流程
3.3.6 HDFS与GFS
3.3.7 HDFS联盟介绍
3.4 分布式锁服务Chubby
3.4.1 一致性问题
3.4.2 Paxos算法简介
3.4.3 Chubby概述
3.4.4 Chubby架构
3.5 分布式应用协调器Zookeeper
3.5.1 Zookeeper概述
3.5.2 Zookeeper的数据结构
3.5.3 Zookeeper架构
3.5.4 Zookeeper的工作原理
3.5.5 Zookeeper应用场景
3.6 云存储
3.6.1 概述
3.6.2 云存储的分类
3.6.3 云存储的结构模型
3.6.4 典型云存储系统
参考文献
第4章 分布式数据存储系统
4.1 概述
4.2 NoSQL数据库简介
4.2.1 NoSQL的起源与发展
4.2.2 NoSQL概述
4.2.3 NoSQL系统架构
4.2.4 NoSQL的数据模型
4.2.5 NoSQL的理论基础
4.2.6 NoSQL数据库体系结构
4.2.7 NoSQL与SQL的比较
4.3 面向列存储系统BigTable
4.3.1 概述
4.3.2 数据模型
4.3.3 系统架构
4.4 面向列存储系统HBase
4.4.1 HBase概述
4.4.2 HBase的数据模型
4.4.3 HBase架构及实现
4.4.4 HBase与BigTable的比较
参考文献
技术篇
第5章 云数据中心节能技术
5.1 数据中心概述
5.1.1 数据中心发展历史
5.1.2 数据中心网络结构
5.1.3 云数据中心
5.2 云数据中心节能技术
5.2.1 硬件设施
5.2.2 系统架构
5.2.3 软件方式
5.2.4 数据中心的能耗模型
5.3 网络感知节能调度算法DENS
5.3.1 DENS算法原理
5.3.2 DENS算法实现
5.3.3 改进的DENS算法
5.4 基于超图的存储优化节能算法
5.4.1 问题提出
5.4.2 CS方法
5.4.3 基于超图的副本存储优化节能算法
5.4.4 作业静态分配算法
5.4.5 动态副本迁移算法的相关分析
5.4.6 异构集群能效分析
5.4.7 覆盖集发现算法CS-k
5.4.8 基于超图的副本节能算法描述
5.4.9 实验结果及分析
参考文献
第6章 Hadoop集群的作业调度
6.1 集群与作业调度
6.1.1 集群简介
6.1.2 作业调度系统
6.1.3 经典作业调度算法
6.1.4 PBS作业管理系统
6.1.5 云环境下的作业调度
6.2 Hadoop的作业调度算法
6.2.1 Hadoop作业调度概述
6.2.2 批处理调度器FIFO
6.2.3 公平调度器
6.2.4 计算能力调度器
6.2.5 其他调度算法
6.3 基于伯格模型的公平调度算法
6.3.1 公平性概念
6.3.2 伯格模型概述
6.3.3 云计算中资源分配的伯格模型
6.3.4 基于伯格模型的作业调度模型
6.3.5 基于伯格模型的作业调度算法
参考文献
第7章 MapReduce性能优化
7.1 概述
7.1.1 MapReduce性能调优
7.1.2 MapReduce的性能优化研究
7.2 MapReduce性能模型
7.2.1 影响性能指标的因素
7.2.2 基于I/O成本的性能模型
7.3 Crunch概述
7.3.1 Crunch简介
7.3.2 设计思路
7.3.3 框架结构
7.3.4 工作原理
7.4 Crunch优化
7.4.1 问题的提出
7.4.2 Profiling
7.4.3 基于代价的划分
7.4.4 Reduce优化
7.4.5 数据抽样
7.5 实验与结果分析
7.5.1 实验设置
7.5.2 基于MapReduce的协同过滤推荐算法
7.5.3 验证算法正确性
7.5.4 验证算法有效性
参考文献
实践篇
第8章 云环境下的图算法PageRank
8.1 图计算概述
8.2 Web挖掘
8.2.1 Web挖掘概述
8.2.2 Web图结构分析
8.3 浅析PageRank算法
8.3.1 PageRank算法简介
8.3.2 PageRank算法分析
8.3.3 使用MapReduce思想计算PageRank值
8.4 基于MapReduce的PageRank算法
8.4.1 PageRank算法的MapReduce实现
8.4.2 利用矩阵分块思想的并行PageRank算法
8.4.3 PageRank算法实现的改进
8.4.4 实验及结果分析
8.5 基于BSP模型的PageRank算法
8.5.1 BSP模型
8.5.2 图计算框架Pregel
8.5.3 PageRank的Pregel实现
8.5.4 Pregel存在的问题
参考文献
第9章 图计算框架Hama
9.1 Hama简介
9.2 Hama核心技术
9.2.1 Hama层次结构
9.2.2 Hama体系结构
9.2.3 Hama代码组织
9.2.4 Hama常用API
9.2.5 基于YARN的Hama程序执行流程
9.3 蒙特卡罗算法的实现
9.3.1 用蒙特卡罗算法求圆周率π
9.3.2 基于Hadoop的蒙特卡罗算法
9.3.3 基于Hama的蒙特卡罗算法
9.4 Hadoop与Hama的性能比较
9.4.1 优势区间
9.4.2 可用区间
9.4.3 劣势区间
9.4.4 综合分析
参考文献
第10章 基于MapReduce的DNA序列拼接
10.1 概述
10.1.1 生物信息学现状
10.1.2 序列拼接研究
10.2 测序技术
10.2.1 第一代DNA测序技术
10.2.2 第二代DNA测序技术
10.2.3 第三代DNA测序技术
10.3 序列拼接技术
10.3.1 序列拼接问题
10.3.2 序列拼接技术
10.4 repeat问题
10.4.1 聚类法
10.4.2 ARACHNE法
10.4.3 路径相容性法
10.5 基于MapReduce的欧拉超路并行算法
10.5.1 算法的选择
10.5.2 欧拉超路算法拼接流程
10.5.3 欧拉超路算法各步骤的并行化
10.5.4 并行欧拉超路算法性能分析
参考文献
附录A 云计算仿真器CloudSim
A.1 CloudSim简介
A.2 CloudSim体系结构
A.3 CloudSim核心类介绍
A.4 CloudSim开发环境搭建
A.5 仿真步骤
A.6 样例程序分析
参考文献
附录B Hama开发环境的搭建
B.1 所需软件
B.2 Hadoop和Hama的安装
B.3 搭建Hama编程环境
附录C 分布式Hadoop平台搭建
C.1 Hadoop系统的安装方式
C.2 硬件和软件需求
C.3 搭建步骤
C.4 运行示例程序