基本信息

编辑推荐
适读人群 :1.大数据应用开发人员对这部分读者来说,本书的内容有助于加深他们对大数据技术的理解,提高自己的开发水平。本书可以作为他们应用、定制和扩展大数据的宝贵参考资料。2.
(1)作者是资深大数据专家,经验极其丰富,著有《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》和《Hadoop技术内幕:深入解析YARN架构设计与实现原理》两本畅销书。
(2)从数据收集、数据存储、资源管理与服务协调、计算引擎、数据分析、数据可视化6个方面详细讲解全栈大数据技术。
内容简介
计算机书籍
本书站在大数据落地应用的角度,系统阐述大数据从数据收集,到数据存储、分布式协调及资源管理、计算引擎、分析工具,再到数据可视化这一完整流程,本书既包含主要技术的实现原理及其框架,也包含了具体落地指导,是帮助企业和个人整体了解大数据框架不可多得的参考书。本章主要包括6个部分共16章的内容,其中:第壹部分介绍了大数据体系架构,以及Google和Hadoop技术栈;第二部分介绍大数据分析相关技术,主要涉及关系型数据收集工具Sqoop与Canel、非关系型数据收集系统Flume以及分布式消息队列Kafka;第三部分介绍大数据存储相关技术,涉及数据存储格式、分布式文件系统以及分布式数据库;第四部分介绍资源管理和服务协调相关技术,涉及资源管理和调度系统YARN以及资源协调系统ZooKeeper;第五部分介绍计算引擎相关技术,涉及批处理、交互式处理以及流式实时处理三类引擎;第六部分数据分析相关技术,涉及基于数据分析语言HQL与SQL、大数据统一编程模型及机器学习库等。
作译者
资深大数据技术实践者和研究者,对大数据基础架构有非常深刻的认识和理解,有着丰富的实践经验。熟悉常见的开源大数据解决方案,包括Hadoop和Spark生态系统等,擅长底层分布式系统的优化和开发。撰写了大量关于Hadoop和Spark等大数据相关的技术文章并分享在自己的博客上,由于文章技术含量高,所以非常受欢迎。
出版有大数据领域负有盛名的专著:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》和《Hadoop技术内幕:深入解析YARN架构设计与实现原理》。
个人博客:http://dongxicheng.org/(大量关于Hadoop的干货分享)
微信公众账号:hadoop123(大量关于大数据最新资讯和干货分享)
如果想了解更多关于本书的内容,可访问:http://hadoop123.com/
目录
第一部分 概述篇
第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
前言
随着大数据技术的普及,它已经被广泛应用于互联网、电信、金融、工业制造等诸多行业。据相关报告统计,大数据人才需求呈井喷态势,越来越多的程序员开始学习大数据技术,这使得它已经成为程序员所需的基本技能。
为了满足大数据人才市场需求,越来越多的大数据技术书籍不断面世,包括《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等常用技术。
书摘
(1)基于哈希的实现
基于哈希的实现是Spark第一个Shuffle实现版本,它的基本思想是:ShuffleMapTask在每个core上生成R(R指Shuffle Read端任务个数)个文件,数据直接通过哈希方式决定具体写入哪个文件,这些文件被该core上运行的每一轮任务公用,并以追加的形式不断增加。图11—19展示了SimpleReduceByKey基于哈希的Shuffle的实现原理,在该应用程序中,共启动了2个Executor,每个Executor拥有2个core(可同时运行2个任务),ShuffleRead端共有3个任务。
基于哈希的Shuffle实现最大缺点是扩展性差,主要体现在以下两个方面:
1)产生过多临时文件:如果一个应用程序共启动了C个Executor,且shuffle Read端启动R个ResultTask任务,则该应用程序共产生C*R个临时文件,很明显,应用程序产生的临时文件数目随着Executor数目和任务数目的增大而线性增加,文件数目过多会产生以下两个问题:
写性能低下:大量小文件会意味着大量随机写,性能低下。
操作系统资源消耗大:过多文件可能会耗光操作系统资源(比如Inode数)。
……