第一部分 高性能分布式计算编程基础 2
第1章 引言 2
1.1 分布式系统 2
1.2 分布式系统类型 5
1.2.1 分布式嵌入式系统 5
1.2.2 分布式信息系统 7
1.2.3 分布式计算系统 8
1.3 分布式计算架构 9
1.4 分布式文件系统 10
1.4.1 分布式文件系统需求 10
1.4.2 分布式文件系统架构 11
1.5 分布式系统面临的挑战 13
1.6 分布式系统的发展趋势 16
1.7 高性能分布式计算系统示例 18
参考文献 20
第2章 Hadoop入门 22
2.1 Hadoop简介 22
2.2 Hadoop生态系统 24
2.3 Hadoop分布式文件系统 26
2.3.1 HDFS的特性 26
2.3.2 名称节点和数据节点 27
2.3.3 文件系统 28
2.3.4 数据复制 28
2.3.5 通信 30
2.3.6 数据组织 30
2.4 MapReduce准备工作 31
2.5 安装前的准备 33
2.6 单节点集群的安装 35
2.7 多节点集群的安装 38
2.8 Hadoop编程 45
2.9 Hadoop流 48
参考文献 51
第3章 Spark入门 53
3.1 Spark简介 53
3.2 Spark内部结构 54
3.3 Spark安装 58
3.3.1 安装前的准备 58
3.3.2 开始使用 60
3.3.3 示例:Scala应用 63
3.3.4 Python下Spark的使用 65
3.3.5 示例:Python应用 67
3.4 Spark部署 68
3.4.1 应用提交 68
3.4.2 单机模式 70
参考文献 72
第4章 Scalding和Spark的内部编程 74
4.1 Scalding简介 74
4.1.1 安装 74
4.1.2 编程指南 77
4.2 Spark编程指南 103
参考文献 120
第二部分 使用Hadoop、Scalding和Spark的案例研究 122
第5章 案例研究Ⅰ:使用Scalding和Spark进行数据聚类 122
5.1 简介 122
5.2 聚类 122
5.2.1 聚类方法 123
5.2.2 聚类处理 125
5.2.3 K均值算法 125
5.2.4 简单的K均值示例 126
5.3 实现 128
问题 142
参考文献 142
第6章 案例研究Ⅱ:使用Scalding和Spark进行数据分类 144
6.1 分类 145
6.2 概率论 146
6.2.1 随机变量 146
6.2.2 分布 146
6.2.3 均值和方差 147
6.3 朴素贝叶斯 148
6.3.1 概率模型 148
6.3.2 参数估计和事件模型 149
6.3.3 示例 150
6.4 朴素贝叶斯分类器的实现 152
6.4.1 Scalding实现 153
6.4.2 结果 166
问题 168
参考文献 168
第7章 案例研究Ⅲ:使用Scalding和Spark进行回归分析 169
7.1 回归分析的步骤 169
7.2 实现细节 172
7.2.1 线性回归:代数方法 173
7.2.2 代数方法的Scalding实现 174
7.2.3 代数方法的Spark实现 179
7.2.4 线性回归:梯度下降法 184
7.2.5 梯度下降法的Scalding实现 187
7.2.6 梯度下降法的Spark实现 195
问题 198
参考文献 199
第8章 案例研究Ⅳ:使用Scalding和Spark实现推荐系统 200
8.1 推荐系统 200
8.1.1 目标 201
8.1.2 推荐系统的数据源 201
8.1.3 推荐系统中使用的技术 202
8.2 实现细节 204
8.2.1 Spark实现 206
8.2.2 Scalding实现 221
问题 230
参考文献 230
索引 233