Hadoop+Spark生态系统操作与实战指南pdf下载

Hadoop+Spark生态系统操作与实战指南百度网盘pdf下载

作者:
简介:Hadoop+Spark生态系统操作与实战指南
出版社:
出版时间:2017-09
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色


编辑推荐

通过实际操作,快速学习Hadoop+Spark大数据技术。

解析Hadoop + Spark常用组件原理和实战操作,让读者快速了解组件原理和应用。

结合Hadoop + Spark原生态组件操作,使得读者了解当今互联网应用极为广泛的集群技术。

帮助读者构建Hadoop + Spark两大生态系统全局观。


内容简介

  本书用于Hadoop+Spark快速上手,全面解析Hadoop和Spark生态系统,通过原理解说和实例操作每一个组件,让读者能够轻松跨入大数据分析与开发的大门。

  全书共12章,大致分为3个部分,第1部分(第1~7章)讲解Hadoop的原生态组件,包括Hadoop、ZooKeeper、HBase、Hive环境搭建与安装,以及介绍MapReduce、HDFS、ZooKeeper、HBase、Hive原理和Apache版本环境下实战操作。第2部分(第8~11章)讲解Spark的原生态组件,包括SparkCore、SparkSQL、SparkStreaming、DataFrame,以及介绍Scala、SparkAPI、SparkSQL、SparkStreaming、DataFrame原理和CDH版本环境下实战操作,其中Flume和Kafka属于Apache*开源项目也放在本篇讲解。第3部分(第12章)讲解两个大数据项目,包络网页日志离线项目和实时项目,在CDH版本环境下通过这两个项目将Hadoop和Spark原生态组件进行整合,一步步带领读者学习和实战操作。

  本书适合想要快速掌握大数据技术的初学者,也适合作为高等院校和培训机构相关专业师生的教学参考书和实验用书。


作者简介

  余辉,中国科学院大学硕士研究生毕业,研究方向为云计算和大数据。现供职于某上市公司担任技术经理,并在 Oracle OAEC人才产业集团大数据学院担任大数据讲师。 曾在清华大学电子工程系NGNLab研究室担任软件工程师。

目录

第1章Hadoop概述1

1.1Hadoop简介1

1.2Hadoop版本和生态系统3

1.3MapReduce简介7

1.4HDFS简介8

1.5Eclipse+Java开发环境搭建10

1.5.1Java安装10

1.5.2Maven安装11

1.5.3Eclipse安装和配置12

1.5.4Eclipse创建Maven项目16

1.5.5Eclipse其余配置19

1.6小结21

第2章Hadoop集群搭建22

2.1虚拟机简介22

2.2虚拟机配置24

2.3Linux系统设置31

2.4Apache版本Hadoop集群搭建36

2.5CDH版本Hadoop集群搭建44

2.5.1安装前期准备44

2.5.2ClouderaManager安装45

2.5.3CDH安装46

2.6小结55

第3章Hadoop基础与原理56

3.1MapReduce原理介绍56

3.1.1MapReduce的框架介绍56

3.1.2MapReduce的执行步骤58

3.2HDFS原理介绍59

3.2.1HDFS是什么59

3.2.2HDFS架构介绍59

3.3HDFS实战62

3.3.1HDFS客户端的操作62

3.3.2Java操作HDFS65

3.4YARN原理介绍69

3.5小结71

第4章ZooKeeper实战72

4.1ZooKeeper原理介绍72

4.1.1ZooKeeper基本概念72

4.1.2ZooKeeper工作原理73

4.1.3ZooKeeper工作流程76

4.2ZooKeeper安装78

4.3ZooKeeper实战80

4.3.1ZooKeeper客户端的操作80

4.3.2Java操作ZooKeeper81

4.3.3Scala操作ZooKeeper85

4.4小结87

第5章MapReduce实战88

5.1前期准备88

5.2查看YARN上的任务95

5.3加载配置文件95

5.4MapReduce实战96

5.5小结121

第6章HBase实战122

6.1HBase简介及架构122

6.2HBase安装127

6.3HBase实战129

6.3.1HBase客户端的操作129

6.3.2Java操作HBase132

6.3.3Scala操作HBase136

6.4小结140

第7章Hive实战141

7.1Hive介绍和架构141

7.2Hive数据类型和表结构143

7.3Hive分区、桶与倾斜144

7.4Hive安装146

7.5Hive实战148

7.5.1Hive客户端的操作148

7.5.2Hive常用命令154

7.5.3Java操作Hive155

7.6小结161

第8章Scala实战162

8.1Scala简介与安装162

8.2IntelliJIDEA开发环境搭建164

8.2.1IntelliJIDEA简介164

8.2.2IntelliJIDEA安装164

8.2.3软件配置166

8.3IntelliJIDEA建立Maven项目171

8.4基础语法176

8.5函数179

8.6控制语句181

8.7函数式编程184

8.8模式匹配189

8.9类和对象191

8.10Scala异常处理194

8.11Trait(特征)195

8.12Scala文件I/O196

8.13作业198

8.13.1九九乘法表198

8.13.2冒泡排序199

8.13.3设计模式Command200

8.13.4集合对称判断202

8.13.5综合题204

8.14小结206

第9章Flume实战207

9.1Flume概述207

9.2Flume的结构208

9.3Flume安装211

9.4Flume实战212

9.5小结214

第10章Kafka实战215

10.1Kafka概述215

10.1.1简介215

10.1.2使用场景217

10.2Kafka设计原理218

10.3Kafka主要配置222

10.4Kafka客户端操作224

10.5Java操作Kafka226

10.5.1生产者226

10.5.2消费者228

10.6Flume连接Kafka229

10.7小结233

第11章Spark实战234

11.1Spark概述234

11.2Spark基本概念234

11.3Spark算子实战及功能描述238

11.3.1Value型Transformation算子238

11.3.2Key-Value型Transformation算子242

11.3.3Actions算子245

11.4SparkStreaming实战248

11.5SparkSQL和DataFrame实战253

11.6小结266

第12章大数据网站日志分析项目267

12.1项目介绍267

12.2网站离线项目267

12.2.1业务框架图267

12.2.2子服务“趋势分析”详解268

12.2.3表格的设计272

12.2.4提前准备274

12.2.5项目步骤287

12.3网站实时项目297

12.3.1业务框架图297

12.3.2子服务“当前在线”详解297

12.3.3表格的设计302

12.3.4提前准备304

12.3.5项目步骤327

12.4小结337


精彩书摘

第 1 章
? Hadoop概述 ?

1.1 Hadoop简介
1. Hadoop的由来
Hadoop是Doug Cutting(Apache Lucene创始人)开发的、使用广泛的文本搜索库。Hadoop起源于Apache Nutch,后者是一个开源的网络搜索引擎,本身也是Lucene项目的一部分。
2. Hadoop名字的起源
Hadoop这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者Doug Cutting如此解释Hadoop的得名:“这个名字是我孩子给一头吃饱了的棕黄色大象命名的。我的命名标准就是简短、容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手。Googol就是由小孩命名的。”(Google来源于Googol一词。GooGol指的是10的100次幂(方),代表互联网上的海量资源。公司创建之初,肖恩?安德森在搜索该名字是否已经被注册时,将Googol误打成了Google。)
Hadoop及其子项目和后继模块所使用的名字往往也与其功能不相关,经常用一头大象或其他动物主题(例如:Pig)。较小的各个组成部分给予更多描述性(因此也更俗)的名称。这是一个很好的原则,因为它意味着可以大致从其名字猜测其功能,例如,jobtracker 的任务就是跟踪MapReduce作业。
从头开始构建一个网络搜索引擎是一个雄心勃勃的目标,不只是要编写一个复杂的、能够抓取和索引网站的软件,还需要面临着没有专业运行团队支持运行它的挑战,因为它有那么多独立部件。同样昂贵的还有:据Mike Cafarella和Doug Cutting估计,一个支持此10亿页的索引,需要价值约50万美元的硬件投入,每月运行费用还需要3万美元。 不过,他们相信这是一个有价值的目标,因为这会开放并最终使搜索引擎算法普及化。
Nutch项目开始于2002年,一个可工作的抓取工具和搜索系统很快浮出水面。但他们意识到,他们的架构将无法扩展到拥有数十亿网页的网络。在2003年发表的一篇描述Google分布式文件系统(简称GFS)的论文为他们提供了及时的帮助,文中称Google正在使用此文件系统。GFS或类似的东西,可以解决他们在网络抓取和索引过程中产生的大量的文件的存储需求。具体而言,GFS会省掉管理所花的时间,如管理存储节点。在2004年,他们开始写一个开放源码的应用,即Nutch的分布式文件系统(NDFS)。
2004年,Google发表了论文,向全世界介绍了MapReduce。2005年初,Nutch的开发者在Nutch上有了一个可工作的MapReduce应用,到当年年中,所有主要的Nutch算法被移植到使用MapReduce和NDFS来运行。
Nutch中的NDFS和MapReduce实现的应用远不只是搜索领域,在2006年2月,他们从Nutch转移出来成为一个独立的Lucene子项目,称为Hadoop。大约在同一时间,Doug Cutting加入雅虎,Yahoo提供一个专门的团队和资源将Hadoop发展成一个可在网络上运行的系统(见后文的补充材料)。在2008年2月,雅虎宣布其搜索引擎产品部署在一个拥有1万个内核的Hadoop集群上。
2008年1月,Hadoop已成为Apache顶级项目,证明它是成功的,是一个多样化、活跃的社区。通过这次机会,Hadoop成功地被雅虎之外的很多公司应用,如Last.fm、Facebook和《纽约时报》。一些应用在Hadoop维基有介绍,Hadoop维基的网址为http://wiki.apache.org/hadoop/PoweredBy。
有一个良好的宣传范例,《纽约时报》使用亚马逊的EC2云计算将4 TB的报纸扫描文档压缩,转换为用于Web的PDF文件。 这个过程历时不到24小时,使用100台机器运行,如果不结合亚马逊的按小时付费的模式(即允许《纽约时报》在很短的一段时间内访问大量机器)和Hadoop易于使用的并行程序设计模型,该项目很可能不会这么快开始启动。
2008年4月,Hadoop打破世界纪录,成为最快排序1 TB数据的系统,运行在一个910节点的集群,Hadoop在209秒内排序了1 TB的数据(还不到三分半钟),击败了前一年的297秒冠军。同年11月,谷歌在报告中声称,它的MapReduce实现执行1 TB数据的排序只用了68秒。在2009年5月,有报道宣称Yahoo的团队使用Hadoop对1 TB的数据进行排序只花了62秒时间。
构建互联网规模的搜索引擎需要大量的数据,因此需要大量的机器来进行处理。Yahoo!Search包括四个主要组成部分:Crawler,从因特网下载网页;WebMap,构建一个网络地图;Indexer,为最佳页面构建一个反向索引;Runtime(运行时),回答用户的查询。WebMap是一幅图,大约包括一万亿条边(每条代表一个网络链接)和一千亿个节点(每个节点代表不同的网址)。创建和分析此类大图需要大量计算机运行若干天。在2005年初,WebMap所用的基础设施名为Dreadnaught,需要重新设计以适应更多节点的需求。Dreadnaught成功地从20个节点扩展到600个,但还需要一个完全重新的设计,以进一步扩大。Dreadnaught与MapReduce有许多相似的地方,但灵活性更强,结构更少。具体说来,Dreadnaught作业可以将输出发送到此作业下一阶段中的每一个分段(fragment),但排序是在库函数中完成的。在实际情形中,大多数WebMap阶段都是成对存在的,对应于MapReduce。因此,WebMap应用并不需要为了适应MapReduce而进行大量重构。
Eric Baldeschwieler(Eric14)组建了一个小团队,他们开始设计并原型化一个新的框架(原型为GFS和MapReduce,用C++语言编写),打算用它来替换Dreadnaught。尽管当务之急是需要一个WebMap新框架,但显然,标准化对于整个Yahoo! Search平台至关重要,并且通过使这个框架泛化,足以支持其他用户,这样他们才能够充分运用对整个平台的投资。
与此同时,雅虎在关注Hadoop(当时还是Nutch的一部分)及其进展情况。2006年1月,雅虎聘请了Doug Cutting,一个月后,决定放弃自己的原型,转而使用Hadoop。相较于雅虎自己的原型和设计,Hadoop的优势在于它已经在20个节点上实际应用过。这样一来,雅虎便能在两个月内搭建一个研究集群,并着手帮助真正的客户使用这个新的框架,速度比原来预计的快许多。另一个明显的优点是Hadoop已经开源,较容易(虽然远没有那么容易!)从雅虎法务部门获得许可在开源方面进行工作。因此,雅虎在2006年初设立了一个200个节点的研究集群,他们将WebMap的计划暂时搁置,转而为研究用户支持和发展Hadoop。

前言/序言

  近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。大数据技术快速火热,大数据开发工程师更是供不应求。本书是一本Hadoop+Spark快速上手的书,从Hadoop生态系统和Spark生态系统全面原理解析和实战操作每一个组件,每一个知识点都讲得十分细致,让读者能够轻松地跨入大数据开发工程师的大门。

  大数据工程师薪资

  近几年大数据岗位尤其火热,大数据开发工程师供不应求,市面上大数据开发工程师起步就是8千元,1年工作经验1万2千元,2年工作经验1万5千元,3年工作经验2万以上。根据每个人自身学习能力不同,有人2年就可以达到2万元以上。

  下图是神州数码于2017年6月6日发布的一则招聘信息。

  本书内容

  全书共12章,分为3个部分,第1部分(第1~7章)讲解了Hadoop的原生态组件,包括Hadoop、ZooKeeper、HBase、Hive环境搭建与安装,以及如何对MapReduce、HDFS、ZooKeeper、HBase、Hive进行原理介绍和Apache版本环境下实战的操作。第2部分(第8~11章)讲解Spark的原生态组件,包括SparkCore、SparkSQL、SparkStreaming、DataFrame,以及如何对Scala、SparkAPI、SparkSQL、SparkStreaming、DataFrame进行原理介绍和CDH版本环境下实战的操作,其中Flume和Kafka属于Apache*开源项目也放在本篇讲解。第3部分(第12章)讲解大数据项目,包络网页日志离线项目和实时项目,在CDH版本环境下通过两个项目将Hadoop和Spark原生态组件进行整合,一步步带领读者实战大数据项目。

  本书特色

  本书是一本Hadoop+Spark的快速入门书籍,以通俗易懂的方式介绍了Hadoop+Spark原生态组件的原理、实战操作以及集群搭建方面的知识。其中,Hadoop原生态组件包括:MapReduce、HDFS、ZooKeeper、HBase、Hive;Spark原生态组件包括:SparkCore、SparkSQL、SparkStreaming、Dataframe;同时包括Apache版本和CDH5版本的Hadoop集群搭建。本书的特点是:注重“实战”训练,强调知识系统性,关注内容实用性。

  (1)本书从培训角度对读者简述Hadoop+Spark中常用组件的原理和实战操作,让读者快速了解组件原理和功能使用。

  (2)每一个操作都配有实例代码或者图片来帮助理解,每一章的最后还有小节,以归纳总结本章的内容,帮助读者对Hadoop+Spark原生态系统有一个大的全局观。

  (3)目前市面上关于Hadoop的书很多,关于Spark的书也很多,但是很少有对Hadoop+Spark结合进行讲解。本书首先讲解Hadoop+Spark原理,接着讲解Hadoop+Spark原生态组件的实例操作,最后结合大数据网站日志离线和实时两个项目融合Hadoop+Spark所有生态系统功能,使读者对本书有一个由浅入深且快速上手的过程。

  本书适合读者

  本书适合Hadoop+Spark的初学者,希望深入了解Hadoop+Spark安装部署、开发优化的大数据工程师,希望深入了解Hadoop+Spark管理、业务框架扩展的大数据架构师,以及任何对Hadoop+Spark相关技术感兴趣的读者。

  本书代码、软件、文档下载

  本书代码、软件、文档下载地址(注意数字和字母大小写)如下:

  http://pan.baidu.com/s/1cCi0k2

  如果下载有问题,请联系电子邮箱booksaga@163.com,邮件主题为“Hadoop+Spark生态系统与实战指南”。

  本书作者

  余辉,中国科学院大学硕士研究生毕业,研究方向为云计算和大数据。现供职于某上市公司技术经理,并在OracleOAEC人才产业集团大数据学院(http://www.oracleoaec.com.cn/)担任大数据讲师。曾在清华大学电子工程系NGNLab研究室(http://ngn.ee.tsinghua.edu.cn/)担任软件工程师。

  已发表两篇大数据论文:《微博舆情的Hadoop存储和管理平台设计与实现》和《跨媒体多源网络舆情分析系统设计与实现》

  博客:http://blog.csdn.net/silentwolfyh

  微博:http://weibo.com/u/3195228233

  电子邮箱:yuhuiqh2009@163.com

  致谢

  赶在儿子1岁生日之际,赶在我告别30岁之际,我撰写《Hadoop+Spark生态系统操作与实战指南》一书,作为我儿子的生日礼物。感谢父母提供了良好的生活环境,感谢舅舅、舅妈提供了良好的学习平台,感谢我的老婆、姐姐、姐夫在生活上对我的支持和奉献。最后,感谢清华工作和学习的那些时光,清华六年,我学会了生存技能、找到了研究方向、培养了生活习惯。

  余辉

  2017年7月