企业大数据处理:Spark、Druid、Flume与Kafka应用实践
作者: 肖冠宇
出版社:机械工业出版社 2017年09月
简介:
本书分为三大部分,共九章。第壹部分(第1章)主要介绍了企业大数据系统的前期准备工作,包括如何构建企业大数据处理系统的软件环境和集群环境。第二部分(第2~7章)首先介绍了Spark的基本原理,Spark2.0版本的SparkSQL、StructuredStreaming原理和使用方法,以及Spark的多种优化方式;然后,介绍了Druid的基本原理、集群的搭建过程、数据摄入过程,以及在查询过程中如何实现Druid查询API;接着介绍了日志收集系统Flume的基本架构和关键组件,以及分层日志收集架构的设计与实践;后介绍了分布式消息队列Kafka的基本架构和集群搭建过程,以及使用Java语言实现客户端API的详细过程。第三部分(第8~9章)主要介绍了企业大数据处理的两个实际应用案例,分别是基于Druid构建多维数据分析平台和基于JMX指标的监控系统。
【目录】
Contents?目 录
前 言
*部分 准备工作
第1章 基础环境准备 2
1.1 软件环境准备 2
1.2 集群环境准备 4
1.2.1 Zookeeper集群部署 4
1.2.2 Hadoop部署 6
1.3 小结 15
第二部分 核心技术
第2章 Spark详解 18
2.1 Spark概述 18
2.1.1 Spark概述 18
2.1.2 Shuff?le详解 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
第三部分 项目实践
第8章 数据平台 172
8.1 需求分析 172
8.2 功能实现 173
8.2.1 架构设计 173
8.2.2 关键功能实现 175
8.3 小结 184
第9章 监控系统 185
9.1 Inf?luxDB 185
9.1.1 Inf?luxDB简介 186
9.1.2 Inf?luxDB安装 186
9.1.3 Inf?luxDB操作 188
9.1.4 Inf?luxDB客户端 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