这是一部系统、深度讲解大数据技术栈的著作,从数据收集、数据存储、资源管理与服务协调、计算引擎、数据分析、数据可视化6个层次讲解了整个大数据技术体系中所有核心技术的原理、架构与实践。不仅能让读者从宏观上全面认识整个大数据系统,而且还能让读者从微观上深入理解各种大数据技术的细节。
本书将以数据在大数据系统中的生命周期为线索,一共17章,分为七个部分:
第一部分(第1章):概述
主要介绍企业级大数据技术框架、技术实现方案和架构,包括Google的大数据技术栈和以Hadoop和Spark为代表的开源技术栈。
第二部分(第2-4章):数据收集
讲解大数据收集相关技术,主要涉及关系型数据收集工具Sqoop与Canel,非关系型数据收集系统Flume以及分布式消息队列Kafka。
第三部分(第5-7章):数据存储
讲解大数据存储相关技术,涉及数据存储格式,分布式文件系统以及分布式数据库三部分,包括Thrift、Protobuf、Avro、HDFS和HBase等。
第四部分(第8-9章):分布式协调与资源管理
讲解资源管理和服务协调相关技术,涉及资源管理和调度系统YARN以及资源协调系统Zookeeper。
第五部分(第10-13章):计算引擎
讲解计算引擎相关技术,涉及批处理、交互式处理以及流式实时处理三类引擎,包括MapReduce、Spark、Impala/Presto、Storm等常用技术。
第六部分(第14-16章):数据分析
讲解数据分析相关技术,涉及基于数据分析语言HQL与SQL,大数据统一编程模型及机器学习库等。
第七部分(第17章):应用案例
讲解了3个企业级大数据综合应用案例,包括Lambda架构、基于大数据技术的数据仓库、用户行为实时统计系统。
目 录?Contents
前 言
第一部分 概述篇
第1章 企业级大数据技术体系概述 2
1.1 大数据系统产生背景及应用场景 2
1.1.1 产生背景 2
1.1.2 常见大数据应用场景 3
1.2 企业级大数据技术框架 5
1.2.1 数据收集层 6
1.2.2 数据存储层 7
1.2.3 资源管理与服务协调层 7
1.2.4 计算引擎层 8
1.2.5 数据分析层 9
1.2.6 数据可视化层 9
1.3 企业级大数据技术实现方案 9
1.3.1 Google大数据技术栈 10
1.3.2 Hadoop与Spark开源大数据技术栈 12
1.4 大数据架构:Lambda Architecture 15
1.5 Hadoop与Spark版本选择及安装部署 16
1.5.1 Hadoop与Spark版本选择 16
1.5.2 Hadoop与Spark安装部署 17
1.6 小结 18
1.7 本章问题 18
第二部分 数据收集篇
第2章 关系型数据的收集 20
2.1 Sqoop概述 20
2.1.1 设计动机 20
2.1.2 Sqoop基本思想及特点 21
2.2 Sqoop基本架构 21
2.2.1 Sqoop1基本架构 22
2.2.2 Sqoop2基本架构 23
2.2.3 Sqoop1与Sqoop2对比 24
2.3 Sqoop使用方式 25
2.3.1 Sqoop1使用方式 25
2.3.2 Sqoop2使用方式 28
2.4 数据增量收集CDC 31
2.4.1 CDC动机与应用场景 31
2.4.2 CDC开源实现Canal 32
2.4.3 多机房数据同步系统Otter 33
2.5 小结 35
2.6 本章问题 35
第3章 非关系型数据的收集 36
3.1 概述 36
3.1.1 Flume设计动机 36
3.1.2 Flume基本思想及特点 37
3.2 Flume NG基本架构 38
3.2.1 Flume NG基本架构 38
3.2.2 Flume NG高级组件 41
3.3 Flume NG数据流拓扑构建方法 42
3.3.1 如何构建数据流拓扑 42
3.3.2 数据流拓扑实例剖析 46
3.4 小结 50
3.5 本章问题 50
第4章 分布式消息队列Kafka 51
4.1 概述 51
4.1.1 Kafka设计动机 51
4.1.2 Kafka特点 53
4.2 Kafka设计架构 53
4.2.1 Kafka基本架构 54
4.2.2 Kafka各组件详解 54
4.2.3 Kafka关键技术点 58
4.3 Kafka程序设计 60
4.3.1 Producer程序设计 61
4.3.2 Consumer程序设计 63
4.3.3 开源Producer与Consumer实现 65
4.4 Kafka典型应用场景 65
4.5 小结 67
4.6 本章问题 67
第三部分 数据存储篇
第5章 数据序列化与文件存储格式 70
5.1 数据序列化的意义 70
5.2 数据序列化方案 72
5.2.1 序列化框架Thrift 72
5.2.2 序列化框架Protobuf 74
5.2.3 序列化框架Avro 76
5.2.4 序列化框架对比 78
5.3 文件存储格式剖析 79
5.3.1 行存储与列存储 79
5.3.2 行式存储格式 80
5.3.3 列式存储格式ORC、Parquet与CarbonData 82
5.4 小结 88
5.5 本章问题 89
第6章 分布式文件系统 90
6.1 背景 90
6.2 文件级别和块级别的分布式文件系统 91
6.2.1 文件级别的分布式系统 91
6.2.2 块级别的分布式系统 92
6.3 HDFS基本架构 93
6.4 HDFS关键技术 94
6.4.1 容错性设计 95
6.4.2 副本放置策略 95
6.4.3 异构存储介质 96
6.4.4 集中式缓存管理 97
6.5 HDFS访问方式 98
6.5.1 HDFS shell 98
6.5.2 HDFS API 100
6.5.3 数据收集组件 101
6.5.4 计算引擎 102
6.6 小结 102
6.7 本章问题 103
第7章 分布式结构化存储系统 104
7.1 背景 104
7.2 HBase数据模型 105
7.2.1 逻辑数据模型 105
7.2.2 物理数据存储 107
7.3 HBase基本架构 108
7.3.1 HBase基本架构 108
7.3.2 HBase内部原理 110
7.4 HBase访问方式 114
7.4.1 HBase shell 114
7.4.2 HBase API 116
7.4.3 数据收集组件 118
7.4.4 计算引擎 119
7.4.5 Apache Phoenix 119
7.5 HBase应用案例 120
7.5.1 社交关系数据存储 120
7.5.2 时间序列数据库OpenTSDB 122
7.6 分布式列式存储系统Kudu 125
7.6.1 Kudu基本特点 125
7.6.2 Kudu数据模型与架构 126
7.6.3 HBase与Kudu对比 126
7.7 小结 127
7.8 本章问题 127
第四部分 分布式协调与资源管理篇
第8章 分布式协调服务ZooKeeper 130
8.1 分布式协调服务的存在意义 130
8.1.1 leader选举 130
8.1.2 负载均衡 131
8.2 ZooKeeper数据模型 132
8.3 ZooKeeper基本架构 133
8.4 ZooKeeper程序设计 134
8.4.1 ZooKeeper API 135
8.4.2 Apache Curator 139
8.5 ZooKeeper应用案例 142
8.5.1 leader选举 142
8.5.2 分布式队列 143
8.5.3 负载均衡 143
8.6 小结 144
8.7 本章问题 145
第9章 资源管理与调度系统YARN 146
9.1 YARN产生背景 146
9.1.1 MRv1局限性 146
9.1.2 YARN设计动机 147
9.2 YARN设计思想 148
9.3 YARN的基本架构与原理 149
9.3.1 YARN基本架构 149
9.3.2 YARN高可用 152
9.3.3 YARN工作流程 153
9.4 YARN资源调度器 155
9.4.1 层级队列管理机制 155
9.4.2 多租户资源调度器产生背景 156
9.4.3 Capacity/Fair Scheduler 157
9.4.4 基于节点标签的调度 160
9.4.5 资源抢占
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
评论