第一部分 大数据的本质
第1章 大数据是什么 2
1.1 大数据导论 2
1.1.1 大数据简史 2
1.1.2 大数据现状 3
1.1.3 大数据与BI 3
1.2 企业数据资产 4
1.3 大数据挑战 5
1.3.1 成本挑战 6
1.3.2 实时性挑战 6
1.3.3 安全挑战 6
1.4 小结 6
第2章 运营商大数据架构 7
2.1 架构驱动的因素 7
2.2 大数据平台架构 7
2.3 平台发展趋势 8
2.4 小结 8
第3章 运营商大数据业务 9
3.1 运营商常见的大数据业务 9
3.1.1 SQM(运维质量管理) 9
3.1.2 CSE(客户体验提升) 9
3.1.3 MSS(市场运维支撑) 10
3.1.4 DMP(数据管理平台) 10
3.2 小结 11
第二部分 大数据技术
第4章 数据获取 14
4.1 数据分类 14
4.2 数据获取组件 14
4.3 探针 15
4.3.1 探针原理 15
4.3.2 探针的关键能力 16
4.4 网页采集 26
4.4.1 网络爬虫 26
4.4.2 简单爬虫Python代码示例 32
4.5 日志收集 33
4.5.1 Flume 33
4.5.2 其他日志收集组件 47
4.6 数据分发中间件 47
4.6.1 数据分发中间件的作用 47
4.6.2 Kafka架构和原理 47
4.7 小结 82
第5章 流处理 83
5.1 算子 83
5.2 流的概念 83
5.3 流的应用场景 84
5.3.1 金融领域 84
5.3.2 电信领域 85
5.4 业界两种典型的流引擎 85
5.4.1 Storm 85
5.4.2 Spark Streaming 89
5.4.3 融合框架 102
5.5 CEP 108
5.5.1 CEP是什么 108
5.5.2 CEP的架构 109
5.5.3 Esper 110
5.6 实时结合机器学习 110
5.6.1 Eagle的特点 111
5.6.2 Eagle概览 111
5.7 小结 116
第6章 交互式分析 117
6.1 交互式分析的概念 117
6.2 MPP DB技术 118
6.2.1 MPP的概念 118
6.2.2 典型的MPP数据库 121
6.2.3 MPP DB调优实战 131
6.2.4 MPP DB适用场景 162
6.3 SQL on Hadoop 163
6.3.1 Hive 163
6.3.2 Phoenix 165
6.3.3 Impala 166
6.4 大数据仓库 167
6.4.1 数据仓库的概念 167
6.4.2 OLTP/OLAP对比 168
6.4.3 大数据场景下的同与不同 168
6.4.4 查询引擎 169
6.4.5 存储引擎 170
6.5 小结 171
第7章 批处理技术 172
7.1 批处理技术的概念 172
7.2 MPP DB技术 172
7.3 MapReduce编程框架 173
7.3.1 MapReduce起源 173
7.3.2 MapReduce原理 173
7.3.3 Shuffle 174
7.3.4 性能差的主要原因 177
7.4 Spark架构和原理 177
7.4.1 Spark的起源和特点 177
7.4.2 Spark的核心概念 178
7.5 BSP框架 217
7.5.1 什么是BSP模型 217
7.5.2 并行模型介绍 218
7.5.3 BSP模型基本原理 220
7.5.4 BSP模型的特点 222
7.5.5 BSP模型的评价 222
7.5.6 BSP与MapReduce对比 222
7.5.7 BSP模型的实现 223
7.5.8 Apache Hama简介 223
7.6 批处理关键技术 227
7.6.1 CodeGen 227
7.6.2 CPU亲和技术 228
7.7 小结 229
第8章 机器学习和数据挖掘 230
8.1 机器学习和数据挖掘的联系与区别 230
8.2 典型的数据挖掘和机器学习过程 231
8.3 机器学习概览 232
8.3.1 学习方式 232
8.3.2 算法类似性 233
8.4 机器学习&数据挖掘应用案例 235
8.4.1 尿布和啤酒的故事 235
8.4.2 决策树用于电信领域故障快速定位 236
8.4.3 图像识别领域 236
8.4.4 自然语言识别 238
8.5 交互式分析 239
8.6 深度学习 240
8.6.1 深度学习概述 240
8.6.2 机器学习的背景 241
8.6.3 人脑视觉机理 242
8.6.4 关于特征 244
8.6.5 需要有多少个特征 245
8.6.6 深度学习的基本思想 246
8.6.7 浅层学习和深度学习 246
8.6.8 深度学习与神经网络 247
8.6.9 深度学习的训练过程 248
8.6.10 深度学习的框架 248
8.6.11 深度学习与GPU 255
8.6.12 深度学习小结与展望 256
8.7 小结 257
第9章 资源管理 258
9.1 资源管理的基本概念 258
9.1.1 资源调度的目标和价值 258
9.1.2 资源调度的使用限制及难点 258
9.2 Hadoop领域的资源调度框架 259
9.2.1 YARN 259
9.2.2 Borg 260
9.2.3 Omega 262
9.2.4 本节小结 263
9.3 资源分配算法 263
9.3.1 算法的作用 263
9.3.2 几种调度算法分析 263
9.4 数据中心统一资源调度 271
9.4.1 Mesos+Marathon架构和原理 271
9.4.2 Mesos+Marathon小结 283
9.5 多租户技术 284
9.5.1 多租户概念 284
9.5.2 多租户方案 284
9.6 基于应用描述的智能调度 287
9.7 Apache Mesos架构和原理 288
9.7.1 Apache Mesos背景 288
9.7.2 Apache Mesos总体架构 288
9.7.3 Apache Mesos工作原理 290
9.7.4 Apache Mesos关键技术 295
9.7.5 Mesos与YARN比较 304
9.8 小结 305
第10章 存储是基础 306
10.1 分久必合,合久必分 306
10.2 存储硬件的发展 306
10.2.1 机械硬盘的工作原理 306
10.2.2 SSD的原理 307
10.2.3 3DXPoint 309
10.2.4 硬件发展小结 309
10.3 存储关键指标 309
10.4 RAID技术 309
10.5 存储接口 310
10.5.1 文件接口 311
10.5.2 裸设备 311
10.5.3 对象接口 312
10.5.4 块接口 316
10.5.5 融合是趋势 328
10.6 存储加速技术 328
10.6.1 数据组织技术 328
10.6.2 缓存技术 335
10.7 小结 336
第11章 大数据云化 337
11.1 云计算定义 337
11.2 应用上云 337
11.2.1 Cloud Native概念 338
11.2.2 微服务架构 338
11.2.3 Docker配合微服务架构 342
11.2.4 应用上云小结 348
11.3 大数据上云 348
11.3.1 大数据云服务的两种模式 348
11.3.2 集群模式AWSEMR 349
11.3.3 服务模式Azure Data Lake Analytics 352
11.4 小结 354
第三部分 大数据文化
第12章 大数据技术开发文化 356
12.1 开源文化 356
12.2 DevOps理念 356
12.2.1 Development和Operations的组合 357
12.2.2 对应用程序发布的影响 357
12.2.3 遇到的问题 358
12.2.4 协调人 358
12.2.5 成功的关键 359
12.3 速度远比你想的重要 359
12.4 小结 361