首页>参考读物>计算机科学与技术>综合

大数据技术体系详解:原理、架构与实践
作者 : 董西成 著
丛书名 : 大数据技术丛书
出版日期 : 2018-02-26
ISBN : 978-7-111-59072-9
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 372
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书是站在大数据落地应用的角度,系统阐述大数据从数据收集,到数据存储、分布式协调及资源管理、计算引擎、分析工具,再到数据可视化这一完整流程,本书既包含主要技术的实现原理及其框架,也包含了具体落地指导,是帮助企业和个人整体了解大数据框架不可多得的参考书。本章主要包括6个部分共16章的内容,其中:第一部分综述了大数据企业级大数据的体系结构,让读者先有一个整体认识,然后分别从数据收集、数据存储、分布式协调与资源管理、计算引擎、数据分析等几个方面详细阐述大数据的整体架构体系。

图书特色

资深大数据技术专家/《Hadoop技术内幕》系列图书作者撰写
从数据收集、数据存储、资源管理与服务协调、计算引擎、数据分析5个层次系统、深度剖析大数据技术体系

图书前言

为什么要写这本书
随着大数据技术的普及,它已经被广泛应用于互联网、电信、金融、工业制造等诸多行业。据相关报告统计,大数据人才需求呈井喷态势,越来越多的程序员开始学习大数据技术,这使得它已经成为程序员所需的基本技能。
为了满足大数据人才市场需求,越来越多的大数据技术书籍不断面世,包括《Hadoop权威指南》《Hadoop实战》等。尽管如此,面向初、中级学者,能够系统化、体系化介绍大数据技术的基础书籍并不多见。笔者曾接触过大量大数据初学者,他们一直渴望能有一本简单且易于理解的教科书式的大数据书籍出现。为了满足这些读者的需求,笔者根据自己多年的数据项目和培训经验,继《Hadoop技术内幕》书籍之后,于两年前开始尝试编写一本浅显易读的大数据基础书籍。
相比于现有的大数据基础书籍,本书具有三大特色:①系统性:深度剖析大数据技术体系的六层架构;②技术性:详尽介绍Hadoop和Spark等主流大数据技术;③实用性:理论与实践相结合,探讨常见的大数据问题。本书尝试以“数据生命周期”为线索,按照分层结构逐步介绍大数据技术体系,涉及数据收集、数据存储、资源管理和服务协调、计算引擎及数据分析五层技术架构,由点及面,最终通过综合案例将这些技术串接在一起。
读者对象
(1)大数据应用开发人员
本书用了相当大的篇幅介绍各个大数据系统的适用场景和使用方式,能够很好地帮助大数据应用开发工程师设计出满足要求的程序。
(2)大数据讲师和学员
本书按照大数据五层架构,即数据收集→数据存储→资源管理与服务协调→计算引擎→数据分析,完整介绍了整个大数据技术体系,非常易于理解,此外,每节包含大量代码示例和思考题目,非常适合大数据教学。
(3)大数据运维工程师
对于一名合格的大数据运维工程师而言,适当地了解大数据系统的应用场景、设计原理和架构是十分有帮助的,这不仅有助于我们更快地排除各种可能的大数据系统故障,也能够让运维人员与研发人员更有效地进行沟通。本书可以有效地帮助运维工程师全面理解当下主流的大数据技术体系。
(4)开源软件爱好者
开源大数据系统(比如Hadoop和Spark)是开源软件中的佼佼者,它们在实现的过程中吸收了大量开源领域的优秀思想,同时也有很多值得学习的创新。通过阅读本书,这部分读者不仅能领略到开源软件的优秀思想,还可以学习如何构建一套完整的技术生态。
如何阅读本书
本书以数据在大数据系统中的生命周期为线索,介绍以Hadoop与Spark为主的开源大数据技术栈。本书内容组织方式如下。
第一部分:主要介绍大数据体系架构,以及Google和Hadoop技术栈,让读者从高层次上对大数据技术有一定了解。
第二部分:介绍大数据分析相关技术,主要涉及关系型数据收集工具Sqoop与Canel、非关系型数据收集系统Flume,以及分布式消息队列Kafka。
第三部分:介绍大数据存储相关技术,涉及数据存储格式、分布式文件系统及分布式数据库三部分。
第四部分:介绍资源管理和服务协调相关技术,涉及资源管理和调度系统YARN,以及资源协调系统ZooKeeper。
第五部分:介绍计算引擎相关技术,包括批处理、交互式处理,以及流式实时处理三类引擎,内容涉及MapReduce、Spark、Impala/Presto、Storm等常用技术。
第六部分:介绍数据分析相关技术,涉及基于数据分析的语言HQL与SQL、大数据统一编程模型及机器学习库等。
大数据体系的逻辑也是本书的逻辑,故这里给出大数据体系逻辑图。
勘误和支持
由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者特意创建了一个在线支持与应急方案的站点http://hadoop123.com和微信公众号hadoop-123。你可以将书中的错误发布在Bug勘误表页面。如果你遇到任何问题,也可以访问Q&A页面,我将尽量在线上为你提供最满意的解答。如果你有更多宝贵的意见,也欢迎发送邮件至邮箱dongxicheng@yahoo.com,期待能够得到你们的真挚反馈。
获取源代码实例
本书各节的源代码实例可从网站http://hadoop123.com或微信公众号hadoop-123中获取。
致谢
感谢我的导师廖华明副研究员,是她引我进入大数据世界。
感谢机械工业出版社华章分社的孙海亮编辑对本书的校订,他的鼓励和帮助使我顺利完成了本书的编写工作。
最后感谢我的父母,感谢他们的养育之恩,感谢兄长的鼓励和支持,感谢他们时时刻刻给我以信心和力量!
谨以此书献给我最亲爱的家人,以及众多热爱大数据技术的朋友们!

董西成

上架指导

计算机课程/大数据

封底文字

本书第一次尝试系统化剖析大数据基础架构,内容涉及数据收集(包括Sqoop,Flume及Kafka)、数据存储(包括序列化和文件格式、HDFS、HBase和Kudu)、资源管理和服务协调(包括YARN和Zookeeper)、计算引擎(包括批处理计算框架MapReduce、Tez和Spark,交互式计算框架Impala和Presto,流式计算框架 Storm和Spark Streaming等)以及数据分析(包括Hive、Spark SQL、 Apache Beam和MLlib)等5个层级的核心内容,其组织方式如下图所示。
本书是作者多年大数据经验的总结,可帮大数据爱好者更加系统地认识和学习大数据基础架构,进而帮助大家构建更加系统化的大数据知识体系。

作者简介

董西成 著:暂无简介

图书目录

前 言
第一部分 概述篇
第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 资源抢占模型 163
9.5 YARN资源隔离 164
9.6 以YARN为核心的生态系统 165
9.7 资源管理系统Mesos 167
9.7.1 Mesos基本架构 167
9.7.2 Mesos资源分配策略 169
9.7.3 Mesos与YARN对比 170
9.8 资源管理系统架构演化 170
9.8.1 集中式架构 171
9.8.2 双层调度架构 171
9.8.3 共享状态架构 172
9.9 小结 173
9.10 本章问题 173
第五部分 大数据计算引擎篇
第10章 批处理引擎MapReduce 176
10.1 概述 176
10.1.1 MapReduce产生背景 176
10.1.2 MapReduce设计目标 177
10.2 MapReduce编程模型 178
10.2.1 编程思想 178
10.2.2 MapReduce编程组件 179
10.3 MapReduce程序设计 187
10.3.1 MapReduce程序设计基础 187
10.3.2 MapReduce程序设计进阶 194
10.3.3 Hadoop Streaming 198
10.4 MapReduce内部原理 204
10.4.1 MapReduce作业生命周期 204
10.4.2 MapTask与ReduceTask 206
10.4.3 MapReduce关键技术 209
10.5 MapReduce应用实例 211
10.6 小结 213
10.7 本章问题 213
第11章 DAG计算引擎Spark 215
11.1 概述 215
11.1.1 Spark产生背景 215
11.1.2 Spark主要特点 217
11.2 Spark编程模型 218
11.2.1 Spark核心概念 218
11.2.2 Spark程序基本框架 220
11.2.3 Spark编程接口 221
11.3 Spark运行模式 227
11.3.1 Standalone模式 229
11.3.2 YARN模式 230
11.3.3 Spark Shell 232
11.4 Spark程序设计实例 232
11.4.1 构建倒排索引 232
11.4.2 SQL GroupBy实现 234
11.4.3 应用程序提交 235
11.5 Spark内部原理 236
11.5.1 Spark作业生命周期 237
11.5.2 Spark Shuffle 241
11.6 DataFrame、Dataset与SQL 247
11.6.1 DataFrame/Dataset与SQL的关系 248
11.6.2 DataFrame/Dataset程序设计 249
11.6.3 DataFrame/Dataset程序实例 254
11.7 Spark生态系统 257
11.8 小结 257
11.9 本章问题 258
第12章 交互式计算引擎 261
12.1 概述 261
12.1.1 产生背景 261
12.1.2 交互式查询引擎分类 262
12.1.3 常见的开源实现 263
12.2 ROLAP 263
12.2.1 Impala 263
12.2.2 Presto 267
12.2.3 Impala与Presto对比 271
12.3 MOLAP 271
12.3.1 Druid简介 271
12.3.2 Kylin简介 272
12.3.3 Druid与Kylin对比 274
12.4 小结 274
12.5 本章问题 274
第13章 流式实时计算引擎 276
13.1 概述 276
13.1.1 产生背景 276
13.1.2 常见的开源实现 278
13.2 Storm基础与实战 278
13.2.1 Storm概念与架构 279
13.2.2 Storm程序设计实例 282
13.2.3 Storm内部原理 285
13.3 Spark Streaming基础与实战 290
13.3.1 概念与架构 290
13.3.2 程序设计基础 291
13.3.3 编程实例详解 298
13.3.4 容错性讨论 300
13.4 流式计算引擎对比 303
13.5 小结 304
13.6 本章问题 304
第六部分 数据分析篇
第14章 数据分析语言HQL与SQL 308
14.1 概述 308
14.1.1 背景 308
14.1.2 SQL On Hadoop 309
14.2 Hive架构 309
14.2.1 Hive基本架构 310
14.2.2 Hive查询引擎 311
14.3 Spark SQL架构 312
14.3.1 Spark SQL基本架构 312
14.3.2 Spark SQL与Hive对比 313
14.4 HQL 314
14.4.1 HQL基本语法 314
14.4.2 HQL应用实例 320
14.5 小结 322
14.6 本章问题 322
第15章 大数据统一编程模型 325
15.1 产生背景 325
15.2 Apache Beam基本构成 327
15.2.1 Beam SDK 327
15.2.2 Beam Runner 328
15.3 Apache Beam编程模型 329
15.3.1 构建Pipeline 330
15.3.2 创建PCollection 331
15.3.3 使用Transform 334
15.3.4 side input与side output 340
15.4 Apache Beam流式计算模型 341
15.4.1 window简述 342
15.4.2 watermark、trigger与accumulation 344
15.5 Apache Beam编程实例 346
15.5.1 WordCount 346
15.5.2 移动游戏用户行为分析 348
15.6 小结 350
15.7 本章问题 350
第16章 大数据机器学习库 351
16.1 机器学习库简介 351
16.2 MLLib 机器学习库 354
16.2.1 Pipeline 355
16.2.2 特征工程 357
16.2.3 机器学习算法 360
16.3 小结 361
16.4 本章问题 361

教学资源推荐
作者: 彭波 主编
作者: 王卫红 李晓明 编著
作者: (美)W. Bruce Croft,Donald Metzler, Trevor Strohman 著
作者: 刘艺 王春生 等编
参考读物推荐
作者: 朱继辉 刘政 窦运涛 邱威 著 夏坤庄 审校
作者: 王红卫 等编著