新書推薦:
《
跟着渤海小吏读历史:大唐气象(全三册)
》
售價:NT$
989.0
《
心智的构建:大脑如何创造我们的精神世界
》
售價:NT$
380.0
《
美国小史(揭秘“美国何以成为美国”,理解美国的经典入门读物)
》
售價:NT$
380.0
《
中国古代北方民族史丛书——东胡史
》
售價:NT$
576.0
《
巨人传(插图珍藏本)
》
售價:NT$
3289.0
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:NT$
358.0
《
偿还:债务与财富的阴暗面
》
售價:NT$
374.0
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:NT$
440.0
|
內容簡介: |
本书站在大数据落地应用的角度,系统阐述大数据从数据收集,到数据存储、分布式协调及资源管理、计算引擎、分析工具,再到数据可视化这一完整流程,本书既包含主要技术的实现原理及其框架,也包含了具体落地指导,是帮助企业和个人整体了解大数据框架不可多得的参考书。本章主要包括6个部分共16章的内容,其中:第壹部分介绍了大数据体系架构,以及Google和Hadoop技术栈;第二部分介绍大数据分析相关技术,主要涉及关系型数据收集工具Sqoop与Canel、非关系型数据收集系统Flume以及分布式消息队列Kafka;第三部分介绍大数据存储相关技术,涉及数据存储格式、分布式文件系统以及分布式数据库;第四部分介绍资源管理和服务协调相关技术,涉及资源管理和调度系统YARN以及资源协调系统ZooKeeper;第五部分介绍计算引擎相关技术,涉及批处理、交互式处理以及流式实时处理三类引擎;第六部分数据分析相关技术,涉及基于数据分析语言HQL与SQL、大数据统一编程模型及机器学习库等。
|
目錄:
|
目录?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 Architecture15
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 数据增量收集CDC31
2.4.1 CDC动机与应用场景31
2.4.2 CDC开源实现Canal32
2.4.3 多机房数据同步系统Otter33
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章 分布式消息队列Kafka51
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 序列化框架Thrift72
5.2.2 序列化框架Protobuf74
5.2.3 序列化框架Avro76
5.2.4 序列化框架对比78
5.3 文件存储格式剖析79
5.3.1 行存储与列存储79
5.3.2 行式存储格式80
5.3.3 列式存储格式ORC、Parquet与CarbonData82
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 shell98
6.5.2 HDFS API100
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 shell114
7.4.2 HBase API116
7.4.3 数据收集组件118
7.4.4 计算引擎119
7.4.5 Apache Phoenix119
7.5 HBase应用案例120
7.5.1 社交关系数据存储120
7.5.2 时间序列数据库OpenTSDB122
7.6 分布式列式存储系统Kudu125
7.6.1 Kudu基本特点125
7.6.2 Kudu数据模型与架构126
7.6.3 HBase与Kudu对比126
7.7 小结127
7.8 本章问题127
第四部分 分布式协调与资源管理篇
第8章 分布式协调服务ZooKeeper130
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 API135
8.4.2 Apache Curator139
8.5 ZooKeeper应用案例142
8.5.1 leader选举142
8.5.2 分布式队列143
8.5.3 负载均衡143
8.6 小结144
8.7 本章问题145
第9章 资源管理与调度系统YARN146
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 CapacityFair Scheduler157
9.4.4 基于节点标签的调度160
9.4.5 资源抢占
|
內容試閱:
|
Preface?前言为什么要写这本书随着大数据技术的普及,它已经被广泛应用于互联网、电信、金融、工业制造等诸多行业。据相关报告统计,大数据人才需求呈井喷态势,越来越多的程序员开始学习大数据技术,这使得它已经成为程序员所需的基本技能。
为了满足大数据人才市场需求,越来越多的大数据技术书籍不断面世,包括《Hadoop权威指南》《Hadoop实战》等。尽管如此,面向初、中级学者,能够系统化、体系化介绍大数据技术的基础书籍并不多见。笔者曾接触过大量大数据初学者,他们一直渴望能有一本简单且易于理解的教科书式的大数据书籍出现。为了满足这些读者的需求,笔者根据自己多年的数据项目和培训经验,继《Hadoop技术内幕》书籍之后,于两年前开始尝试编写一本浅显易读的大数据基础书籍。
相比于现有的大数据基础书籍,本书具有三大特色:①系统性:深度剖析大数据技术体系的六层架构;②技术性:详尽介绍Hadoop和Spark等主流大数据技术;③实用性:理论与实践相结合,探讨常见的大数据问题。本书尝试以“数据生命周期”为线索,按照分层结构逐步介绍大数据技术体系,涉及数据收集、数据存储、资源管理和服务协调、计算引擎及数据分析五层技术架构,由点及面,最终通过综合案例将这些技术串接在一起。
读者对象(1)大数据应用开发人员本书用了相当大的篇幅介绍各个大数据系统的适用场景和使用方式,能够很好地帮助大数据应用开发工程师设计出满足要求的程序。
(2)大数据讲师和学员本书按照大数据五层架构,即数据收集→数据存储→资源管理与服务协调→计算引擎→数据分析,完整介绍了整个大数据技术体系,非常易于理解,此外,每节包含大量代码示例和思考题目,非常适合大数据教学。
(3)大数据运维工程师对于一名合格的大数据运维工程师而言,适当地了解大数据系统的应用场景、设计原理和架构是十分有帮助的,这不仅有助于我们更快地排除各种可能的大数据系统故障,也能够让运维人员与研发人员更有效地进行沟通。本书可以有效地帮助运维工程师全面理解当下主流的大数据技术体系。
(4)开源软件爱好者开源大数据系统(比如Hadoop和Spark)是开源软件中的佼佼者,它们在实现的过程中吸收了大量开源领域的优秀思想,同时也有很多值得学习的创新。通过阅读本书,这部分读者不仅能领略到开源软件的优秀思想,还可以学习如何构建一套完整的技术生态。
如何阅读本书本书以数据在大数据系统中的生命周期为线索,介绍以Hadoop与Spark为主的开源大数据技术栈。本书内容组织方式如下。
第一部分:主要介绍大数据体系架构,以及Google和Hadoop技术栈,让读者从高层次上对大数据技术有一定了解。
第二部分:介绍大数据分析相关技术,主要涉及关系型数据收集工具Sqoop与Canel、非关系型数据收集系统Flume,以及分布式消息队列Kafka。
第三部分:介绍大数据存储相关技术,涉及数据存储格式、分布式文件系统及分布式数据库三部分。
第四部分:介绍资源管理和服务协调相关技术,涉及资源管理和调度系统YARN,以及资源协调系统ZooKeeper。
第五部分:介绍计算引擎相关技术,包括批处理、交互式处理,以及流式实时处理三类引擎,内容涉及MapReduce、Spark、ImpalaPresto、Storm等常用技术。
第六部分:介绍数据分析相关技术,涉及基于数据分析的语言HQL与SQL、大数据统一编程模型及机器学习库等。
大数据体系的逻辑也是本书的逻辑,故这里给出大数据体系逻辑图。
勘误和支持由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者特意创建了一个在线支持与应急方案的站点http:hadoop123.com和微信公众号hadoop-123。你可以将书中的错误发布在Bug勘误表页面。如果你遇到任何问题,也可以访问Q&A页面,我将尽量在线上为你提供最满意的解答。如果你有更多宝贵的意见,也欢迎发送邮件至邮箱dongxicheng@yahoo.com,期待能够得到你们的真挚反馈。
获取源代码实例本书各节的源代码实例可从网站http:hadoop123.com或微信公众号hadoop-123中获取。
致谢感谢我的导师廖华明副研究员,是她引我进入大数据世界。
感谢机械工业出版社华章公司的孙海亮编辑对本书的校订,他的鼓励和帮助使我顺利完成了本书的编写工作。
最后感谢我的父母,感谢他们的养育之恩,感谢兄长的鼓励和支持,感谢他们时时刻刻给我以信心和力量!
谨以此书献给我最亲爱的家人,以及众多热爱大数据技术的朋友们!
董西成
|
|