描述
开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302479673
全书共12章,大致分为3个部分,第1部分(第1~7章)讲解Hadoop的原生态组件,包括Hadoop、ZooKeeper、HBase、Hive环境搭建与安装,以及介绍MapReduce、HDFS、ZooKeeper、HBase、Hive原理和Apache版本环境下实战操作。第2部分(第8~11章)讲解Spark的原生态组件,包括Spark Core、Spark SQL、Spark Streaming、DataFrame,以及介绍Scala、Spark API、Spark SQL、Spark Streaming、DataFrame原理和CDH版本环境下实战操作,其中Flume和Kafka属于Apache*开源项目也放在本篇讲解。第3部分(第12章)讲解两个大数据项目,包络网页日志离线项目和实时项目,在CDH版本环境下通过这两个项目将Hadoop和Spark原生态组件进行整合,一步步带领读者学习和实战操作。
本书适合想要快速掌握大数据技术的初学者,也适合作为高等院校和培训机构相关专业师生的教学参考书和实验用书。
第1章 Hadoop概述 1
1.1
Hadoop简介 1
1.2
Hadoop版本和生态系统 3
1.3
MapReduce简介 7
1.4
HDFS简介 8
1.5
Eclipse Java开发环境搭建 10
1.5.1
Java安装 10
1.5.2
Maven安装 11
1.5.3
Eclipse安装和配置 12
1.5.4
Eclipse创建Maven项目 16
1.5.5
Eclipse其余配置 19
1.6 小结 21
第2章 Hadoop集群搭建 22
2.1 虚拟机简介 22
2.2 虚拟机配置 24
2.3
Linux系统设置 31
2.4
Apache版本Hadoop集群搭建 36
2.5
CDH版本Hadoop集群搭建 44
2.5.1
安装前期准备 44
2.5.2
Cloudera Manager安装 45
2.5.3
CDH安装 46
2.6 小结 55
第3章 Hadoop基础与原理 56
3.1
MapReduce原理介绍 56
3.1.1
MapReduce的框架介绍 56
3.1.2
MapReduce的执行步骤 58
3.2
HDFS原理介绍 59
3.2.1
HDFS是什么 59
3.2.2
HDFS架构介绍 59
3.3
HDFS实战 62
3.3.1
HDFS客户端的操作 62
3.3.2
Java操作HDFS 65
3.4
YARN原理介绍 69
3.5 小结 71
第4章 ZooKeeper实战 72
4.1
ZooKeeper原理介绍 72
4.1.1 ZooKeeper基本概念 72
4.1.2
ZooKeeper工作原理 73
4.1.3
ZooKeeper工作流程 76
4.2
ZooKeeper安装 78
4.3
ZooKeeper实战 80
4.3.1
ZooKeeper客户端的操作 80
4.3.2
Java操作ZooKeeper 81
4.3.3
Scala操作ZooKeeper 85
4.4 小结 87
第5章 MapReduce实战 88
5.1 前期准备 88
5.2 查看YARN上的任务 95
5.3 加载配置文件 95
5.4
MapReduce实战 96
5.5 小结 121
第6章 HBase实战 122
6.1
HBase简介及架构 122
6.2
HBase安装 127
6.3
HBase实战 129
6.3.1
HBase客户端的操作 129
6.3.2
Java操作HBase 132
6.3.3
Scala操作HBase 136
6.4 小结 140
第7章 Hive实战 141
7.1
Hive介绍和架构 141
7.2
Hive数据类型和表结构 143
7.3 Hive分区、桶与倾斜 144
7.4
Hive安装 146
7.5
Hive实战 148
7.5.1
Hive客户端的操作 148
7.5.2
Hive常用命令 154
7.5.3
Java操作Hive 155
7.6 小结 161
第8章 Scala实战 162
8.1
Scala简介与安装 162
8.2
IntelliJ IDEA开发环境搭建 164
8.2.1
IntelliJ IDEA简介 164
8.2.2
IntelliJ IDEA安装 164
8.2.3
软件配置 166
8.3
IntelliJ IDEA建立Maven项目 171
8.4 基础语法 176
8.5 函数 179
8.6 控制语句 181
8.7 函数式编程 184
8.8 模式匹配 189
8.9 类和对象 191
8.10
Scala 异常处理 194
8.11
Trait(特征) 195
8.12
Scala文件I/O 196
8.13
作业 198
8.13.1
九九乘法表 198
8.13.2
冒泡排序 199
8.13.3
设计模式Command 200
8.13.4
集合对称判断 202
8.13.5
综合题 204
8.14
小结 206
第9章 Flume实战 207
9.1
Flume概述 207
9.2
Flume的结构 208
9.3
Flume安装 211
9.4
Flume实战 212
9.5 小结 214
第10章 Kafka实战 215
10.1
Kafka概述 215
10.1.1
简介 215
10.1.2
使用场景 217
10.2
Kafka设计原理 218
10.3
Kafka主要配置 222
10.4
Kafka客户端操作 224
10.5
Java操作Kafka 226
10.5.1
生产者 226
10.5.2
消费者 228
10.6
Flume连接Kafka 229
10.7
小结 233
第11章 Spark实战 234
11.1
Spark概述 234
11.2
Spark基本概念 234
11.3
Spark算子实战及功能描述 238
11.3.1
Value型Transformation算子 238
11.3.2
Key-Value型Transformation算子 242
11.3.3
Actions算子 245
11.4
Spark Streaming实战 248
11.5
Spark SQL和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
近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。大数据技术快速火热,大数据开发工程师更是供不应求。本书是一本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的原生态组件,包括Spark Core、Spark SQL、Spark Streaming、DataFrame,以及如何对Scala、Spark API、Spark SQL、Spark Streaming、DataFrame进行原理介绍和CDH版本环境下实战的操作,其中Flume和Kafka属于Apache开源项目也放在本篇讲解。第3部分(第12章)讲解大数据项目,包络网页日志离线项目和实时项目,在CDH版本环境下通过两个项目将Hadoop和Spark原生态组件进行整合,一步步带领读者实战大数据项目。
本书特色
本书是一本Hadoop Spark的快速入门书籍,以通俗易懂的方式介绍了Hadoop Spark原生态组件的原理、实战操作以及集群搭建方面的知识。其中,Hadoop原生态组件包括:MapReduce、HDFS、ZooKeeper、HBase、Hive;Spark原生态组件包括:Spark Core、Spark SQL、Spark Streaming、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
如果下载有问题,请联系电子邮箱[email protected],邮件主题为“Hadoop Spark生态系统与实战指南”。
本书作者
余辉,中国科学院大学硕士研究生毕业,研究方向为云计算和大数据。现供职于某上市公司技术经理,并在Oracle OAEC人才产业集团大数据学院(http://www.oracleoaec.com.cn/)担任大数据讲师。曾在清华大学电子工程系NGNLab研究室(http://ngn.ee.tsinghua.edu.cn/)担任软件工程师。
已发表两篇大数据论文:《微博舆情的Hadoop存储和管理平台设计与实现》和《跨媒体多源网络舆情分析系统设计与实现》
博客:http://blog.csdn.net/silentwolfyh
微博:http://weibo.com/u/3195228233
电子邮箱:[email protected]
致谢
赶在儿子1岁生日之际,赶在我告别30岁之际,我撰写《Hadoop Spark生态系统操作与实战指南》一书,作为我儿子的生日礼物。感谢父母提供了良好的生活环境,感谢舅舅、舅妈提供了良好的学习平台,感谢我的老婆、姐姐、姐夫在生活上对我的支持和奉献。后,感谢清华工作和学习的那些时光,清华六年,我学会了生存技能、找到了研究方向、培养了生活习惯。
余 辉
2017年7月
《Hadoop+Spark生态系统操作与实战指南》正是在这样的技术背景下应运而生,能极好地满足广大大数据从业者的需求。本书以原理介绍为基础,以实战训练为目标,具体、深入地阐述了Hadoop及Spark的原生态中每一个组件的基本原理和应用方法;选择Apache和CDH两个主流Hadoop版本作为剖析实例,通过Java、Scala、客户端等开发案例,采用主流的离线项目和实时项目进行讲解。
作者根据自己多年在大数据行业的研发经验和个人体会,并结合大数据实际研发中需求和特点,认真整理其多年来编写的有关大数据研发的博文,精心组织和修订,*终编撰此著作,馈食读者。因此,该著作既是在大数据一线研发人员的知识结晶,而且还是有意进军大数据领域的从业人员的“良师益友”,确实是一本难得的大数据研发的参考资料。
清华大学电子工程系教授、博士生导师
随着大数据时代的到来,大数据技术在各行各业的应用越来越多,大数据相关技术的学习和使用者也越来越多。《Hadoop Spark生态系统操作与实战指南》从大数据爱好者和入门者的角度出发,以原理兼实战为主体思路展现Hadoop及Spark的原生态中每一个组件的操作方法,是一本有效的快速入门教程。
本书首先讲解了Apache和CDH两大Hadoop版本的集群搭建,并以此作为后续的开发平台;其次,讲解了Hadoop Spark中原生态组件的原理,并使用Java、Scala、客户端对组件进行实例操作,作为案例;*后,通过两个网页日志分析项目将Hadoop和Spark中的原生态组件整合在一起,作为项目架构。
余辉毕业于中国科学院大学,其研究方向为大数据与云计算,目前已拥有多年一线大数据开发经验。本书将理论与实践相结合,可作为相关技术教学和培训的参考资料。
中国科学院大学人工智能技术学院教授、副院长
本文作者余辉工程师,在大数据领域的实验室及公司工作多年,积累了丰富的实战经验。这本书理论结合实践,手把手教读者一步一步入门,避免了“纸上谈兵”,是大数据研究爱好者及从业人员的入门书籍。
本书可以作为高等院校计算机专业、信息管理等相关专业的大数据课程教材,也可供相关技术人员参考、学习、培训之用。
中国科学院计算机网络信息中心(CNIC/CAS)百人计划研究员、
巴黎第13大学客座教授、里昂第1大学客座教授
传智播客.黑马程序员高级副总裁
我与余辉的认识起源于清华大学,当时他在清华大学电子工程系担任软件工程师一职,通过和他多次交谈感觉此人思维缜密、善于总结且非常热爱技术。此书涵盖了余辉多年的一线开发经验和博文总结。
《Hadoop Spark生态系统操作与实战指南》总计12章。涵盖Hadoop Spark原生态系统组件,对每一个组件原理和架构有着清晰的描述。通过两套主流开发环境Eclipse Java和IntelliJ IDEA Scala以及客户端分别对每一个组件进行了大量的案例操作,并配上大量案例截图,*后采用主流的离线项目和实时项目进行生态组件的融合。从多维度让读者对大数据快速认知、快速理解、快速上手、快速深入了解大数据行业,是一本非常适合大数据开发爱好者快速入门的书籍。
搜狐视频技术总监
大数据在各行各业的应用越来越广,近几年“大数据”一词也非常火热,余辉的书《Hadoop Spark生态系统操作与实战指南》生逢其时。虽然现在世面上有不少关于大数据方面的书籍,但我还是想从本书的内容结构,及我与作者交往方面,对此书及此人做一个概要性的介绍。
此书*的特点是理念、实战与项目的结合,能把各个知识点,以实战操作的方式连成线,再以项目的方式,把各知识模块连成面,点、线、面轮廓清晰、项目实用,能帮助读者快速理解大数据生态技术中的各种技术在实际应用中的作用。Hadoop是大数据平台,它通过一系列的技术组成一个大数据生态技术圈,各种技术在这个生态中是干什么、原理是什么等在书中都有讲解。书中内容包括三大部分,12章,从大数据生态平台起源讲起(第1章),实践环境搭建(第2章)、分布式存储与计算框架介绍(第3章)、平台协作套件(第4章)、Apache原生的分布式计算框架详解(第5章)、分布式数据存储数据库(第6、7章)、利用函数式编程处理数据(第8章)、数据同步(第9、10章)、内存计算引擎架构(第11章)以及综合项目(第12章),内容丰富、案例真实、可操作性强,通过本书,读者能快速地理解Hadoop大数据技术生态中各种技术在实际项目中的应用。
关于此人,余辉是我通过CSDN博客找到他的,*开始我是阅读他的CSDN博文,从他的博文字里行间能感受到他的几种特质:专注、坚持、超强的执行力。因为Oracle OAEC人才产业中心此时正在开设大数据相关的课程,所以通过电话联系到他,经过一段时间的交流,*终成为Oracle OAEC人才产业基地的一名大数据兼职讲师,负责北京Oracle OAEC中心的大数据课程的教授。在教学过程中,得到学员的多次好评,以此基础,我建议他写一本关于这方面的书箱。我的逻辑是让他通过授课的方式,将多年在大数据一线的实际应用与项目,用通俗易懂的方式让学员理解;同时,自己也加深了理解;再通过写书的方式,能系统地将知识、经验、和自己的理解分享给别人。
Oracle OAEC 人才产业集团大数据学院与认证中心产品总监
ORACLE认证高级讲师
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。3. Hadoop大事记2004年,初的版本(现在称为HDFS和MapReduce)由Doug Cutting和Mike Cafarella开始实施。2005年12月,Nutch移植到新的框架,Hadoop在20个节点上稳定运行。2006年1月,Doug Cutting加入雅虎。2006年2月,Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。2006年2月,雅虎的网格计算团队采用Hadoop。2006年4月,标准排序(10 GB每个节点)在188个节点上运行47.9个小时。2006年5月,雅虎建立了一个300个节点的Hadoop研究集群。2006年5月,标准排序在500个节点上运行42个小时(硬件配置比4月的更好)。2006年11月,研究集群增加到600个节点。2006年12月,标准排序在20个节点上运行1.8个小时,100个节点3.3小时,500个节点5.2小时,900个节点7.8个小时。2007年1月,研究集群到达900个节点。2007年4月,研究集群达到两个1000个节点的集群。2008年4月,赢得世界快1 TB数据排序在900个节点上用时209秒。2008年10月,研究集群每天装载10 TB的数据。2009年3月,17个集群总共24 000台机器。2009年4月,赢得每分钟排序,59秒内排序500 GB(在1400个节点上)和173分钟内排序100 TB数据(在3400个节点上)。1.2 Hadoop版本和生态系统1. Hadoop版本的优缺点目前市面上Hadoop版本主要有两种:Apache版本和CDH版本。(1)Aapche 版本的Hadoop官网:http://hadoop.apache.org/Aapche Hadoop 优势:对硬件要求低。Aapche Hadoop 劣势:搭建烦琐,维护烦琐,升级烦琐,添加组件烦琐。Apache版本Hadoop集群中YARN的界面如图1-1所示,HDFS的界面图1-2 所示。 图1-1 YARN的界面 图1-2 HDFS的界面(2)CDH版本的Hadoop官网:https://www.cloudera.com/CDH优势:搭建方便,维护较为容易,升级以及迁移容易,添加组件容易。CDH缺点:对硬件要求高。Cloudera Manager是一个管理CDH的端到端的应用。主要作用包括:管理、监控、诊断、集成。CDH的Hadoop版本集群中CDH管理界面如图1-3所示。
评论
还没有评论。