第1章 大数据概述 1
本章思维导图 1
1.1 大数据简介 2
1.1.1 大数据的发展历程 2
1.1.2 大数据的定义与特征 2
1.1.3 大数据与传统数据的区别 3
1.2 大数据平台应具备的能力 3
1.3 大数据平台架构 5
1.4 Hadoop生态系统 8
1.5 大数据应用 10
1.5.1 互联网大数据应用 10
1.5.2 金融行业大数据应用 10
1.5.3 医疗行业大数据应用 11
1.5.4 智慧交通大数据应用 11
本章课后习题 12
本章参考文献 12
第2章 大数据存储——分布式文件系统及NoSQL数据库 14
本章思维导图 14
2.1 分布式文件系统 15
2.1.1 HDFS相关概念 15
2.1.2 HDFS体系结构 16
2.1.3 HDFS存储机制 18
2.1.4 HDFS读/写操作 20
2.1.5 HDFS数据导入 21
2.2 NoSQL数据库 22
2.2.1 Key-Value模型 22
2.2.2 Key-Document模型 23
2.2.3 Key-Column模型 24
2.2.4 图模型 25
2.3 列族数据库 25
2.3.1 列族数据库简介 25
2.3.2 HBase的基本原理 26
2.3.3 HBase的数据模型 30
2.4 键值数据库 33
2.4.1 键值数据库简介 33
2.4.2 选择键值数据库的原因 33
2.4.3 Redis的数据结构简介 34
2.4.4 Redis的数据持久化 36
2.4.5 Redis的数据复制 37
2.5 文档数据库 38
2.5.1 文档数据库简介 38
2.5.2 MongoDB的数据类型 39
2.5.3 MongoDB的数据复制 40
2.6 图数据库 42
2.6.1 图数据库简介 42
2.6.2 图数据库的优势 43
2.6.3 Neo4j的基本元素与概念 44
2.6.4 Cypher简介 46
本章课后习题 47
本章参考文献 47
第3章 大数据处理——MapReduce处理框架 48
本章思维导图 48
3.1 MapReduce的发展背景 49
3.2 MapReduce框架 50
3.3 MapReduce的编程模型 52
3.3.1 MapReduce初析 52
3.3.2 MapReduce的运行机制 57
3.3.3 MapReduce的相关问题 59
3.4 MapReduce的集群调度 60
3.4.1 Hadoop1.x的传统集群调度框架 60
3.4.2 Hadoop2.x的集群调度框架YARN 61
3.4.3 Hadoop作业调度器 64
本章课后习题 67
本章参考文献 67
第4章 大数据处理——分布式内存处理框架Spark 68
本章思维导图 68
4.1 Spark简介 69
4.1.1 Spark介绍 69
4.1.2 提出Spark的原因 70
4.1.3 Spark中的关键术语 70
4.1.4 Spark的优点 71
4.2 Spark框架 72
4.2.1 Spark框架图 72
4.2.2 Spark运行图 73
4.2.3 Spark任务调度方法 73
4.3 RDD概念理解 74
4.3.1 RDD介绍 74
4.3.2 RDD的操作 75
4.3.3 RDD的存储 75
4.3.4 RDD分区 76
4.3.5 RDD优先位置 76
4.3.6 RDD依赖关系 76
4.4 RDD操作 78
4.4.1 RDD创建 78
4.4.2 转换操作 78
4.4.3 行动操作 80
4.5 Scala语言 81
4.5.1 Scala介绍 81
4.5.2 Scala基本语法 82
4.5.3 Scala编写Spark示例 86
4.6 Spark SQL简介 86
4.6.1 Spark SQL与Shark的对比 86
4.6.2 Spark SQL的优势 87
4.6.3 Spark SQL生态 87
4.7 MLlib简介 88
4.7.1 MLlib介绍 88
4.7.2 MLlib支持机器学习算法 88
本章课后习题 89
本章参考文献 89
第5章 大数据处理——实时处理框架 90
本章思维导图 90
5.1 实时处理架构 91
5.1.1 基本概念 91
5.1.2 批量和流式计算 92
5.1.3 系统生态简介 92
5.2 Storm框架 93
5.2.1 Storm的基本术语和概念 93
5.2.2 Storm特性及运行原理 94
5.2.3 消息的生命周期 95
5.2.4 消息的可靠性保障 96
5.3 Flume分布式日志收集 98
5.3.1 Flume的基本术语和概念 98
5.3.2 源 99
5.3.3 通道 100
5.3.4 接收器 100
5.4 Kafka分布式消息队列 101
5.4.1 Kafka的基本术语和概念 102
5.4.2 生产者 103
5.4.3 消费者 104
5.4.4 数据传递的可靠性保障 105
5.5 Spark Streaming框架 107
5.5.1 Spark Streaming架构 107
5.5.2 输入数据源 108
5.5.3 DStream的转换操作 108
5.5.4 输出存储 110
5.5.5 容错机制 110
5.6 Flink框架 112
5.6.1 Flink架构 112
5.6.2 Client 112
5.6.3 JobManager 113
5.6.4 TaskManager 114
本章课后习题 115
本章参考文献 115
第6章 大数据查询——分布式数据查询 116
本章思维导图 116
6.1 分布式数据查询简介 117
6.2 Hive分布式数据仓库 118
6.2.1 Hive概述 118
6.2.2 Hive内部介绍 118
6.2.3 Hive架构介绍 119
6.2.4 HiveQL:数据定义 119
6.2.5 HiveQL:数据导入 121
6.2.6 HiveQL:查询 123
6.3 Druid时序数据仓储 129
6.3.1 Druid概述 129
6.3.2 架构详解 132
6.3.3 数据摄入 135
6.3.4 数据查询 141
6.4 Drill分布式实时查询 156
6.4.1 使用Apache Drill的原因 156
6.4.2 Drill架构与原理 157
6.4.3 Drill核心模块 160
6.4.4 使用Drill实现查询 161
本章课后习题 168
本章参考文献 168
第7章 大数据分析——Kylin分布式多维数据分析 170
本章思维导图 170
7.1 使用Apache Kylin的原因 171
7.2 Kylin学习的前奏 172
7.2.1 数据仓库的概念与产生需求 172
7.2.2 数据仓库与数据分析型系统 174
7.2.3 多维数据分析 175
7.2.4 OLAP与数据立方体 176
7.3 Kylin工作原理 178
7.3.1 Cube与Cuboid 178
7.3.2 工作流程 178
7.4 Kylin架构 179
7.5 Kylin快速入门 181
7.5.1 在Hive中准备数据 181
7.5.2 设计数据模型 181
7.5.3 创建Cube 183
7.5.4 构建Cube 186
7.5.5 查询Cube 188
7.6 增量构建 188
7.6.1 设计增量Cube 189
7.6.2 触发增量构建 190
7.6.3 管理Cube碎片 190
7.7 查询和可视化 192
7.7.1 Web GUI 192
7.7.2 Rest API 194
7.7.3 ODBC 197
7.7.4 通过Tableau访问Kylin 197
7.8 Cube优化 201
本章课后习题 204
本章参考文献 204
第8章 数据可视化 205
本章思维导图 205
8.1 数据可视化定义及分类 206
8.1.1 数据可视化定义 206
8.1.2 数据可视化分类 206
8.2 数据可视化基础 208
8.2.1 数据可视化流程 208
8.2.2 可视化中的数据 209
8.2.3 可视化的基本图表 210
8.2.4 视图的交互 211
8.3 信息可视化分类 212
8.3.1 时空数据可视化 212
8.3.2 层次和网络数据可视化 213
8.3.3 文本和文档可视化 214
8.4 在商业智能中的数据可视化应用 214
8.4.1 商业智能可视化的基本元素 215
8.4.2 仪表盘的设计准则 215
8.5 数据可视化的实现 216
8.5.1 数据可视化工具 216
8.5.2 ECharts 217
8.5.3 Plotly 218
本章课后习题 220
本章参考文献 221
第9章 大数据应用系统案例——互联网应用大数据系统构建 222
本章思维导图 222
9.1 互联网业务背景介绍 223
9.2 案例的大数据平台技术体系架构 223
9.2.1 数据采集 224
9.2.2 数据存储 226
9.2.3 数据计算 227
9.2.4 数据应用 229
本章课后习题 230
本章参考文献 230