第1章 大数据处理概述 1
1.1 大数据处理技术概述 1
1.1.1 什么是大数据 1
1.1.2 大数据来源 2
1.1.3 大数据应用价值 3
1.1.4 大数据技术特点和研究内容 4
1.1.5 大数据计算与系统 5
1.2 数据挖掘及其相关领域应用 9
1.2.1 数据挖掘概述 9
1.2.2 数据挖掘与机器学习 11
1.2.3 数据挖掘与数据库 11
1.2.4 数据挖掘与统计学 12
1.2.5 数据挖掘与决策支持 12
1.2.6 数据挖掘与云计算 13
1.3 大数据应用 13
1.3.1 大数据应用案例 13
1.3.2 大数据应用场景 14
1.3.3 大数据应用平台方案案例 21
1.4 并行计算简介 23
1.5 Hadoop介绍 24
1.6 本章小结 26
第2章 云计算时代 27
2.1 云计算概述 27
2.1.1 云计算概念 27
2.1.2 云计算发展简史 28
2.1.3 云计算实现机制 30
2.1.4 云计算服务形式 31
2.1.5 云计算时代的数据库NoSQL 32
2.2 云计算发展动力源泉 34
2.3 云计算技术分析 34
2.3.1 编程模式 34
2.3.2 海量数据云存储技术 37
2.3.3 海量数据管理技术 38
2.3.4 虚拟化技术 39
2.3.5 分布式计算 41
2.3.6 云监测技术 41
2.4 并行计算与云计算关系 43
2.4.1 并行计算与云计算 44
2.4.2 MapReduce 45
2.5 云计算发展优势 51
2.6 向云实现迁移 53
2.7 本章小结 55
第3章 大数据与云计算关系 56
3.1 云计算与大数据关系 56
3.2 大数据与云计算的融合是认识世界的新工具 57
3.3 大数据隐私保护是大数据云快速发展和运用的重要前提 59
3.3.1 云计算的安全隐私 60
3.3.2 大数据的安全隐私 60
3.4 大数据成就云计算价值 62
3.5 数据向云计算迁移 63
3.6 大数据清洗 64
3.7 云计算时代的数据集成技术 66
3.8 云推荐 67
3.9 本章小结 68
第4章 Spark大数据处理基础 69
4.1 Spark大数据处理技术 69
4.1.1 Spark系统概述 69
4.1.2 Spark生态系统BDAS(伯利克分析栈) 70
4.1.3 Spark的用武之地 71
4.1.4 Spark大数据处理框架 72
4.1.5 Spark运行模式分类及术语 73
4.2 Spark 2.0.0安装配置 74
4.2.1 在Linux集群上安装与配置Spark 74
4.2.2 Spark Shell 81
4.2.3 Spark RDD 88
4.2.4 Shark(Hive on Spark大型的数据仓库系统) 91
4.3 Spark配置 92
4.3.1 环境变量 92
4.3.2 系统属性 93
4.3.3 配置日志 95
4.3.4 Spark硬件配置 95
4.4 Spark模式部署概述 96
4.5 Spark Streaming实时计算框架 98
4.6 Spark SQL查询、DataFrames分布式数据集和Datasets API 101
4.7 Spark起始点 102
4.7.1 SparkSession 102
4.7.2 SQLContext 103
4.7.3 创建DataFrame 104
4.7.4 无类型的Dataset操作(aka DataFrame Operations) 105
4.7.5 编程执行SQL查询语句 111
4.7.6 创建Dataset 112
4.7.7 和RDD互操作 115
4.8 Spark数据源 125
4.8.1 通用加载/保存函数 125
4.8.2 Parquet文件 127
4.8.3 JSON数据集 135
4.8.4 Hive表 136
4.8.5 用JDBC连接其他数据库 143
4.9 Spark性能调优 144
4.10 分布式SQL引擎 145
4.11 本章小结 146
第5章 Spark MLlib机器学习算法实现 147
5.1 Spark MLlib基础 147
5.1.1 机器学习 148
5.1.2 机器学习分类 148
5.1.3 机器学习常见算法 149
5.1.4 Spark MLlib机器学习库 152
5.1.5 基于Spark常用的算法举例分析 156
5.2 Spark MLlib矩阵向量 159
5.2.1 Breeze创建函数 159
5.2.2 Breeze元素访问 161
5.2.3 Breeze元素操作 162
5.2.4 Breeze数值计算函数 165
5.2.5 Breeze求和函数 166
5.2.6 Breeze布尔函数 167
5.2.7 Breeze线性代数函数 168
5.2.8 Breeze取整函数 169
5.2.9 Breeze三角函数 170
5.2.10 BLAS向量运算 170
5.3 Spark MLlib线性回归算法 171
5.3.1 线性回归算法理论基础 171
5.3.2 线性回归算法 172
5.3.3 Spark MLlib Linear Regression源码分析 174
5.4 Spark MLlib逻辑回归算法 183
5.4.1 逻辑回归算法 184
5.4.2 Spark MLlib Logistic Regression源码分析 186
5.5 Spark MLlib朴素贝叶斯分类算法 199
5.5.1 朴素贝叶斯分类算法 200
5.5.2 朴素贝叶斯Spark MLlib源码 203
5.6 Spark MLlib决策树算法 217
5.6.1 决策树算法 217
5.6.2 决策树实例 220
5.7 Spark MLlib KMeans聚类算法 227
5.7.1 KMeans聚类算法 227
5.7.2 Spark MLlib KMeans源码分析 228
5.7.3 MLlib KMeans实例 235
5.8 Spark MLlib FPGrowth关联规则算法 236
5.8.1 基本概念 236
5.8.2 FPGrowth算法 237
5.8.3 Spark MLlib FPGrowth源码分析 241
5.9 Spark MLlib协同过滤推荐算法 244
5.9.1 协同过滤概念 244
5.9.2 相似度度量 245
5.9.3 协同过滤算法按照数据使用分类 246
5.9.4 Spark MLlib协同过滤算法实现 247
5.9.5 Spark MLlib电影评级推荐 252
5.10 Spark MLlib神经网络算法 261
5.11 本章小结 264
第6章 Spark大数据架构系统部署 265
6.1 大数据架构介绍 265
6.2 典型的商务使用场景 266
6.2.1 客户行为分析 266
6.2.2 情绪分析 267
6.2.3 CRM Onboarding 267
6.2.4 预测 268
6.3 Spark三种分布式部署模式 268
6.3.1 Standalone模式 268
6.3.2 Spark On Mesos模式 269
6.3.3 Spark On YARN模式 269
6.4 创建大数据架构 270
6.4.1 数据采集 270
6.4.2 数据接入 271
6.4.3 Spark流式计算 273
6.4.4 数据输出 274
6.4.5 日志摄取 274
6.4.6 机器学习 277
6.4.7 处理引擎 277
6.5 Spark单个机器集群部署 278
6.6 本章小结 280
第7章 Spark大数据处理案例分析 282
7.1 Spark on Amazon EMR 282
7.1.1 Amazon EMR 282
7.1.2 配置Spark 283
7.1.3 以交互方式或批处理模式使用Spark 284
7.1.4 使用Spark创建集群 285
7.1.5 访问Spark外壳 286
7.1.6 添加Spark 287
7.2 Spark在AWSKrux的应用 289
7.3 Spark在商业网站中的应用 290
7.4 Spark在Yahoo!的应用 291
7.5 Spark在Amazon EC2上运行 292
7.6 淘宝应用Spark on YARN架构 296
7.7 腾讯云大数据解决方案 297
7.8 雅虎开源TensorFlowOnSpark 298
7.9 阿里云E-MapReduce 301
7.10 SequoiaDB+Spark打造一体化 大数据平台 304
7.11 本章小结 305
第8章 大数据发展展望 306
8.1 大数据未来发展趋势 306
8.2 大数据给人类带来的认知冲击 307
8.3 未来大数据研究突破的技术问题 308
8.4 本章小结 309
附录 Spark MLlib神经网络算法 312
参考文献 338