第一部分 准备工作 2
第1章 基础环境准备 2
1.1 软件环境准备 2
1.2 集群环境准备 4
1.2.1 Zookeeper集群部署 4
1.2.2 Hadoop部署 6
1.3 小结 15
第二部分 核心技术 18
第2章 Spark详解 18
2.1 Spark概述 18
2.1.1 Spark概述 18
2.1.2 Shuffle详解 25
2.2 Spark SQL 29
2.2.1 SparkSession 29
2.2.2 DataFrame 30
2.2.3 DataSet 35
2.3 Structured Streaming 35
2.3.1 数据源 36
2.3.2 输出到外部存储 38
2.3.3 WordCount示例 40
2.4 Spark优化 42
2.4.1 数据优化 42
2.4.2 代码优化 44
2.4.3 参数优化 46
2.5 小结 48
第3章 Druid原理及部署 49
3.1 架构设计 49
3.1.1 节点类型 49
3.1.2 Segment介绍 57
3.1.3 容错处理 59
3.1.4 路由节点 60
3.2 集群部署 63
3.2.1 集群规划 63
3.2.2 配置安装 64
3.3 小结 72
第4章 Druid数据摄入 73
4.1 模式设计 73
4.1.1 设计概述 73
4.1.2 数据解析 75
4.1.3 Segment分区 79
4.1.4 模式更改 81
4.2 批量数据摄入 81
4.3 流数据摄入 87
4.3.1 Tranquility 88
4.3.2 StreamPush 91
4.3.3 从Kafka中摄取数据 92
4.4 数据更新 94
4.5 小结 95
第5章 Druid客户端 96
5.1 涉及组件 96
5.1.1 查询相关 96
5.1.2 过滤器 99
5.1.3 聚合粒度 101
5.1.4 聚合器 105
5.2 查询类型 109
5.2.1 时间序列查询 109
5.2.2 TopN查询 111
5.2.3 分组查询 113
5.2.4 元数据查询 117
5.2.5 搜索查询 121
5.3 查询API 125
5.3.1 RESTful介绍 125
5.3.2 Jersey客户端 126
5.4 小结 129
第6章 日志收集 130
6.1 Flume介绍 130
6.1.1 基本架构 131
6.2 Flume应用实践 144
6.2.1 拦截器、选择器实践 144
6.2.2 负载均衡、故障转移实践 149
6.2.3 设计与实践 150
6.3 小结 154
第7章 分布式消息队列 155
7.1 Kafka介绍 155
7.1.1 基本架构 155
7.1.2 高吞吐的实现 157
7.1.3 高可用的实现 160
7.2 安装部署 161
7.2.1 Broker配置参数 161
7.2.2 分布式部署 162
7.3 客户端API 163
7.3.1 Producer API 164
7.3.2 Consumer API 165
7.4 小结 169
第三部分 项目实践 172
第8章 数据平台 172
8.1 需求分析 172
8.2 功能实现 173
8.2.1 架构设计 173
8.2.2 关键功能实现 175
8.3 小结 184
第9章 监控系统 185
9.1 InfluxDB 185
9.1.1 InfluxDB简介 186
9.1.2 InfluxDB安装 186
9.1.3 InfluxDB操作 188
9.1.4 InfluxDB客户端 191
9.2 JMXTrans 192
9.2.1 JMXTrans介绍 192
9.2.2 JMXTrans安装 194
9.2.3 JMXTrans使用 195
9.3 Grafana 198
9.3.1 Grafana安装 198
9.3.2 Grafana使用 199
9.4 小结 208