第1章 云计算概述 1
1.1 什么是云计算 1
1.1.1 云计算的定义 1
1.1.2 云计算的概念模型 2
1.1.3 云计算的特点 3
1.2 云计算技术发展背景 3
1.3 典型的云计算基础架构 7
1.4 云计算的主要服务模式 9
1.4.1 基础设施即服务IaaS 9
1.4.2 平台即服务PaaS 10
1.4.3 软件即服务SaaS 11
1.4.4 三种服务模式之间的关系 12
1.5 云计算的主要部署模式 13
1.6 云计算是商业模式的创新 14
1.7 典型的云计算产品 15
1.7.1 Amazon的AWS 15
1.7.2 Windows Azure Platform 16
1.7.3 IBM蓝云解决方案 17
1.7.4 阿里云 18
1.8 云计算技术的新发展 20
1.9 我国的云计算产业现状 23
1.9.1 政府推动云计算产业发展 23
1.9.2 我国云计算产业高速发展 24
习题 25
第2章 大数据技术概述 26
2.1 大数据技术的产生 26
2.1.1 大数据的基本概念 26
2.1.2 大数据产生的原因 26
2.1.3 大数据概念的提出 28
2.1.4 第四范式——大数据对科学研究产生的影响 30
2.1.5 云计算与大数据的关系 31
2.2 大数据的4V特征 31
2.3 大数据的主要应用及行业推动力量 32
2.3.1 大数据的主要应用 32
2.3.2 企业推动大数据行业发展 32
2.3.3 我国政府推动大数据行业发展 33
2.4 大数据的关键技术 34
2.5 典型的大数据计算架构 35
习题 35
第3章 虚拟化技术 36
3.1 虚拟化技术简介 36
3.1.1 虚拟化技术的概念 36
3.1.2 虚拟化技术的分类 38
3.1.3 虚拟化技术的优势和劣势 42
3.1.4 虚拟化技术与云计算 43
3.2 虚拟化技术原理 43
3.2.1 虚拟机技术原理 43
3.2.2 CPU虚拟化原理 44
3.2.3 内存虚拟化原理 46
3.2.4 网络虚拟化原理 47
3.3 常见的虚拟化技术解决方案 47
3.3.1 OpenStack 47
3.3.2 KVM 48
3.3.3 Hyper -V 49
3.3.4 VMware 49
3.3.5 Xen 50
3.3.6 Docker 51
3.4 常见虚拟化技术的应用实践 52
3.4.1 虚拟化环境的搭建 53
3.4.2 克隆虚拟机 54
3.4.3 虚拟机做快照 56
习题 59
第4章 数据中心 60
4.1 数据中心的概念 60
4.1.1 数据中心的定义、作用及分类 60
4.1.2 数据中心的发展历程 61
4.1.3 数据中心的组成及建设原则 65
4.1.4 云计算、大数据时代的数据中心发展趋势 66
4.2 数据中心的基本单元——服务器 66
4.3 数据中心选址 69
4.4 数据中心的能耗 69
4.4.1 数据中心能耗评估 70
4.4.2 数据中心的主要节能措施 71
习题 72
第5章 并行计算与集群技术 73
5.1 并行计算概述 73
5.1.1 并行计算的概念 73
5.1.2 并行计算的层次 75
5.1.3 并行计算机的发展 75
5.1.4 并行计算与分布式计算 77
5.1.5 并行计算与云计算 78
5.2 云计算基础架构——集群技术 79
5.2.1 集群的基本概念 79
5.2.2 集群系统的分类 80
5.2.3 集群文件系统 80
5.3 并行计算的分类 81
5.3.1 按Flynn分类 81
5.3.2 按应用的计算特征分类 82
5.3.3 按结构模型分类 83
5.4 并行计算相关技术 84
5.4.1 并行计算的关键技术 84
5.4.2 并行计算的性能估算 86
5.5 并行程序设计——MPI编程 87
5.5.1 MPI简介 87
5.5.2 一个简单的MPI程序实现 88
5.5.3 MPI消息 90
5.5.4 MPI的消息传递过程 90
5.5.5 MPI常用基本函数 91
5.5.6 有消息传递的并行程序 91
习题 93
第6章 云存储技术 94
6.1 云存储概述 94
6.1.1 云存储的概念 94
6.1.2 云存储系统的结构 95
6.1.3 云存储的实现基础 96
6.1.4 云存储的特性 98
6.2 云存储与云计算 99
6.3 云存储的应用 100
6.3.1 个人级云存储的应用 100
6.3.2 企业级云存储的应用 100
6.4 云存储发展的关注点 101
习题 102
第7章 OpenStack——功能强大的IaaS平台 103
7.1 OpenStack架构 103
7.2 计算服务模块Nova 104
7.3 网络服务模块Neutron 107
7.3.1 Neutron的主要组件 107
7.3.2 Neutron网络 109
7.4 块存储服务模块Cinder 110
7.5 对象存储服务模块Swift 111
7.6 身份认证模块Keystone 115
7.7 镜像模块Glance 119
7.8 仪表盘服务模块Horizon 121
7.9 监控计量服务模块Ceilometer 122
习题 123
第8章 Hadoop——分布式大数据开发平台 124
8.1 Hadoop简介 124
8.1.1 Hadoop与分布式开发技术 124
8.1.2 Hadoop的体系架构 125
8.1.3 Hadoop集群的架构 127
8.2 分布式文件系统HDFS 129
8.2.1 分布式文件系统概述 129
8.2.2 HDFS的架构及读写流程 131
8.3 分布式计算框架MapReduce 133
8.3.1 MapReduce编程模型 133
8.3.2 MapReduce数据流 135
8.3.3 MapReduce任务运行流程 136
8.4 列式数据库HBase 138
8.4.1 HBase列数据库介绍 139
8.4.2 理解HBase的表结构 139
8.5 搭建Hadoop开发环境 142
8.5.1 相关准备工作 143
8.5.2 JDK的安装配置 143
8.5.3 下载、解压Hadoop并配置Hadoop环境变量 144
8.5.4 修改 Hadoop配置文件 145
8.5.5 将配置好的Hadoop文件复制到其他结点并格式化 146
8.5.6 启动、停止Hadoop 146
8.5.7 运行测试程序WordCount 147
习题 148
第9章 Spark—基于内存的大数据计算框架 149
9.1 Spark概述 149
9.2 Spark的运行机制 150
9.3 Spark的运行模式 152
9.3.1 Standalone模式 153
9.3.2 Spark Yam模式 153
9.3.3 Spark Mesos模式 157
9.4 Spark RDD 157
9.4.1 RDD的特点 157
9.4.2 RDD的创建 158
9.4.3 RDD基本操作 160
9.4.4 RDD持久化(缓存) 162
9.4.5 Spark共享变量 163
9.5 Spark生态系统 165
9.5.1 Spark SQL 165
9.5.2 Spark Streaming 166
9.5.3 GraphX 169
9.5.4 MLlib 172
习题 173
第10章 Storm——基于拓扑的流数据实时计算框架 174
10.1 Storm简介 174
10.2 Storm原理及其体系架构 177
10.2.1 Storm编程模型原理 177
10.2.2 Storm体系架构 178
10.3 Storm-Yarn简介 180
10.3.1 Storm-Yam的产生背景 180
10.3.2 Storm-Yarn的体系架构 180
10.4 搭建Storm开发环境 181
10.4.1 Storm安装说明 182
10.4.2 Storm安装步骤 182
10.4.3 Storm设置 185
10.4.4 Storm的启动 186
10.4.5 Storm的常用操作命令 186
10.5 Storm应用实践 187
10.5.1 使用Maven管理storm-starter 187
10.5.2 WordCountTopology源代码分析 190
习题 193
第11章 云计算仿真 194
11.1 云计算仿真系统——CloudSim 194
11.1.1 CloudSim基础 194
11.1.2 CloudSim的体系结构 195
11.2 CloudSim的模型使用场景 197
11.3 CloudSim应用实践 198
11.3.1 准备环境 198
11.3.2 数据中心仿真实例 199
11.3.3 网络仿真实例 204
习题 207
参考文献 208