本書(shū)用于Hadoop Spark快速上手,全面解析Hadoop和Spark生態(tài)系統(tǒng),通過(guò)原理解說(shuō)和實(shí)例操作每一個(gè)組件,讓讀者能夠輕松跨入大數(shù)據(jù)分析與開(kāi)發(fā)的大門(mén)。
全書(shū)共12章,大致分為3個(gè)部分,第1部分(第1~7章)講解Hadoop的原生態(tài)組件,包括Hadoop、ZooKeeper、HBase、Hive環(huán)境搭建與安裝,以及介紹MapReduce、HDFS、ZooKeeper、HBase、Hive原理和Apache版本環(huán)境下實(shí)戰(zhàn)操作。第2部分(第8~11章)講解Spark的原生態(tài)組件,包括Spark Core、Spark SQL、Spark Streaming、DataFrame,以及介紹Scala、Spark API、Spark SQL、Spark Streaming、DataFrame原理和CDH版本環(huán)境下實(shí)戰(zhàn)操作,其中Flume和Kafka屬于Apache*開(kāi)源項(xiàng)目也放在本篇講解。第3部分(第12章)講解兩個(gè)大數(shù)據(jù)項(xiàng)目,包絡(luò)網(wǎng)頁(yè)日志離線項(xiàng)目和實(shí)時(shí)項(xiàng)目,在CDH版本環(huán)境下通過(guò)這兩個(gè)項(xiàng)目將Hadoop和Spark原生態(tài)組件進(jìn)行整合,一步步帶領(lǐng)讀者學(xué)習(xí)和實(shí)戰(zhàn)操作。
本書(shū)適合想要快速掌握大數(shù)據(jù)技術(shù)的初學(xué)者,也適合作為高等院校和培訓(xùn)機(jī)構(gòu)相關(guān)專(zhuān)業(yè)師生的教學(xué)參考書(shū)和實(shí)驗(yàn)用書(shū)。
通過(guò)實(shí)際操作,快速學(xué)習(xí)Hadoop Spark大數(shù)據(jù)技術(shù)。解析Hadoop Spark常用組件原理和實(shí)戰(zhàn)操作,讓讀者快速了解組件原理和應(yīng)用。結(jié)合Hadoop Spark原生態(tài)組件操作,使得讀者了解當(dāng)今互聯(lián)網(wǎng)應(yīng)用極為廣泛的集群技術(shù)。幫助讀者構(gòu)建Hadoop Spark兩大生態(tài)系統(tǒng)全局觀。
近幾年來(lái),隨著計(jì)算機(jī)和信息技術(shù)的迅猛發(fā)展和普及應(yīng)用,行業(yè)應(yīng)用系統(tǒng)的規(guī)模迅速擴(kuò)大,行業(yè)應(yīng)用所產(chǎn)生的數(shù)據(jù)呈爆炸性增長(zhǎng)。大數(shù)據(jù)技術(shù)快速火熱,大數(shù)據(jù)開(kāi)發(fā)工程師更是供不應(yīng)求。本書(shū)是一本Hadoop Spark快速上手的書(shū),從Hadoop生態(tài)系統(tǒng)和Spark生態(tài)系統(tǒng)全面原理解析和實(shí)戰(zhàn)操作每一個(gè)組件,每一個(gè)知識(shí)點(diǎn)都講得十分細(xì)致,讓讀者能夠輕松地跨入大數(shù)據(jù)開(kāi)發(fā)工程師的大門(mén)。
大數(shù)據(jù)工程師薪資
近幾年大數(shù)據(jù)崗位尤其火熱,大數(shù)據(jù)開(kāi)發(fā)工程師供不應(yīng)求,市面上大數(shù)據(jù)開(kāi)發(fā)工程師起步就是8千元,1年工作經(jīng)驗(yàn)1萬(wàn)2千元,2年工作經(jīng)驗(yàn)1萬(wàn)5千元,3年工作經(jīng)驗(yàn)2萬(wàn)以上。根據(jù)每個(gè)人自身學(xué)習(xí)能力不同,有人2年就可以達(dá)到2萬(wàn)元以上。
下圖是神州數(shù)碼于2017年6月6日發(fā)布的一則招聘信息。
本書(shū)內(nèi)容
全書(shū)共12章,分為3個(gè)部分,第1部分(第1~7章)講解了Hadoop的原生態(tài)組件,包括Hadoop、ZooKeeper、HBase、Hive環(huán)境搭建與安裝,以及如何對(duì)MapReduce、HDFS、ZooKeeper、HBase、Hive進(jìn)行原理介紹和Apache版本環(huán)境下實(shí)戰(zhàn)的操作。第2部分(第8~11章)講解Spark的原生態(tài)組件,包括Spark Core、Spark SQL、Spark Streaming、DataFrame,以及如何對(duì)Scala、Spark API、Spark SQL、Spark Streaming、DataFrame進(jìn)行原理介紹和CDH版本環(huán)境下實(shí)戰(zhàn)的操作,其中Flume和Kafka屬于Apache頂級(jí)開(kāi)源項(xiàng)目也放在本篇講解。第3部分(第12章)講解大數(shù)據(jù)項(xiàng)目,包絡(luò)網(wǎng)頁(yè)日志離線項(xiàng)目和實(shí)時(shí)項(xiàng)目,在CDH版本環(huán)境下通過(guò)兩個(gè)項(xiàng)目將Hadoop和Spark原生態(tài)組件進(jìn)行整合,一步步帶領(lǐng)讀者實(shí)戰(zhàn)大數(shù)據(jù)項(xiàng)目。
本書(shū)特色
本書(shū)是一本Hadoop Spark的快速入門(mén)書(shū)籍,以通俗易懂的方式介紹了Hadoop Spark原生態(tài)組件的原理、實(shí)戰(zhàn)操作以及集群搭建方面的知識(shí)。其中,Hadoop原生態(tài)組件包括:MapReduce、HDFS、ZooKeeper、HBase、Hive;Spark原生態(tài)組件包括:Spark Core、Spark SQL、Spark Streaming、Dataframe;同時(shí)包括Apache版本和CDH5版本的Hadoop集群搭建。本書(shū)的特點(diǎn)是:注重實(shí)戰(zhàn)訓(xùn)練,強(qiáng)調(diào)知識(shí)系統(tǒng)性,關(guān)注內(nèi)容實(shí)用性。
(1)本書(shū)從培訓(xùn)角度對(duì)讀者簡(jiǎn)述Hadoop Spark中常用組件的原理和實(shí)戰(zhàn)操作,讓讀者快速了解組件原理和功能使用。
(2)每一個(gè)操作都配有實(shí)例代碼或者圖片來(lái)幫助理解,每一章的最后還有小節(jié),以歸納總結(jié)本章的內(nèi)容,幫助讀者對(duì)Hadoop Spark原生態(tài)系統(tǒng)有一個(gè)大的全局觀。
(3)目前市面上關(guān)于Hadoop的書(shū)很多,關(guān)于Spark的書(shū)也很多,但是很少有對(duì)Hadoop Spark 結(jié)合進(jìn)行講解。本書(shū)首先講解Hadoop Spark原理,接著講解Hadoop Spark原生態(tài)組件的實(shí)例操作,最后結(jié)合大數(shù)據(jù)網(wǎng)站日志離線和實(shí)時(shí)兩個(gè)項(xiàng)目融合Hadoop Spark所有生態(tài)系統(tǒng)功能,使讀者對(duì)本書(shū)有一個(gè)由淺入深且快速上手的過(guò)程。
本書(shū)適合讀者
本書(shū)適合Hadoop Spark的初學(xué)者,希望深入了解Hadoop Spark安裝部署、開(kāi)發(fā)優(yōu)化的大數(shù)據(jù)工程師,希望深入了解Hadoop Spark管理、業(yè)務(wù)框架擴(kuò)展的大數(shù)據(jù)架構(gòu)師,以及任何對(duì)Hadoop Spark相關(guān)技術(shù)感興趣的讀者。
本書(shū)代碼、軟件、文檔下載
本書(shū)代碼、軟件、文檔下載地址(注意數(shù)字和字母大小寫(xiě))如下:
http://pan.baidu.com/s/1cCi0k2
如果下載有問(wèn)題,請(qǐng)聯(lián)系電子郵箱booksaga@163.com,郵件主題為Hadoop Spark生態(tài)系統(tǒng)與實(shí)戰(zhàn)指南。
本書(shū)作者
余輝,中國(guó)科學(xué)院大學(xué)碩士研究生畢業(yè),研究方向?yàn)樵朴?jì)算和大數(shù)據(jù),F(xiàn)供職于某上市公司技術(shù)經(jīng)理,并在Oracle OAEC人才產(chǎn)業(yè)集團(tuán)大數(shù)據(jù)學(xué)院(http://www.oracleoaec.com.cn/)擔(dān)任大數(shù)據(jù)講師。曾在清華大學(xué)電子工程系NGNLab研究室(http://ngn.ee.tsinghua.edu.cn/)擔(dān)任軟件工程師。
已發(fā)表兩篇大數(shù)據(jù)論文:《微博輿情的Hadoop存儲(chǔ)和管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)》和《跨媒體多源網(wǎng)絡(luò)輿情分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》
博客:http://blog.csdn.net/silentwolfyh
微博:http://weibo.com/u/3195228233
電子郵箱:yuhuiqh2009@163.com
致謝
趕在兒子1歲生日之際,趕在我告別30歲之際,我撰寫(xiě)《Hadoop Spark生態(tài)系統(tǒng)操作與實(shí)戰(zhàn)指南》一書(shū),作為我兒子的生日禮物。感謝父母提供了良好的生活環(huán)境,感謝舅舅、舅媽提供了良好的學(xué)習(xí)平臺(tái),感謝我的老婆、姐姐、姐夫在生活上對(duì)我的支持和奉獻(xiàn)。最后,感謝清華工作和學(xué)習(xí)的那些時(shí)光,清華六年,我學(xué)會(huì)了生存技能、找到了研究方向、培養(yǎng)了生活習(xí)慣。
余 輝
2017年7月
余輝,中國(guó)科學(xué)院大學(xué)碩士研究生畢業(yè),研究方向?yàn)樵朴?jì)算和大數(shù)據(jù),F(xiàn)供職于某上市公司擔(dān)任技術(shù)經(jīng)理,并在 Oracle OAEC人才產(chǎn)業(yè)集團(tuán)大數(shù)據(jù)學(xué)院擔(dān)任大數(shù)據(jù)講師。 曾在清華大學(xué)電子工程系NGNLab研究室擔(dān)任軟件工程師。
第1章 Hadoop概述 1
1.1
Hadoop簡(jiǎn)介 1
1.2
Hadoop版本和生態(tài)系統(tǒng) 3
1.3
MapReduce簡(jiǎn)介 7
1.4
HDFS簡(jiǎn)介 8
1.5
Eclipse Java開(kāi)發(fā)環(huán)境搭建 10
1.5.1
Java安裝 10
1.5.2
Maven安裝 11
1.5.3
Eclipse安裝和配置 12
1.5.4
Eclipse創(chuàng)建Maven項(xiàng)目 16
1.5.5
Eclipse其余配置 19
1.6 小結(jié) 21
第2章 Hadoop集群搭建 22
2.1 虛擬機(jī)簡(jiǎn)介 22
2.2 虛擬機(jī)配置 24
2.3
Linux系統(tǒng)設(shè)置 31
2.4
Apache版本Hadoop集群搭建 36
2.5
CDH版本Hadoop集群搭建 44
2.5.1
安裝前期準(zhǔn)備 44
2.5.2
Cloudera Manager安裝 45
2.5.3
CDH安裝 46
2.6 小結(jié) 55
第3章 Hadoop基礎(chǔ)與原理 56
3.1
MapReduce原理介紹 56
3.1.1
MapReduce的框架介紹 56
3.1.2
MapReduce的執(zhí)行步驟 58
3.2
HDFS原理介紹 59
3.2.1
HDFS是什么 59
3.2.2
HDFS架構(gòu)介紹 59
3.3
HDFS實(shí)戰(zhàn) 62
3.3.1
HDFS客戶端的操作 62
3.3.2
Java操作HDFS 65
3.4
YARN原理介紹 69
3.5 小結(jié) 71
第4章 ZooKeeper實(shí)戰(zhàn) 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實(shí)戰(zhàn) 80
4.3.1
ZooKeeper客戶端的操作 80
4.3.2
Java操作ZooKeeper 81
4.3.3
Scala操作ZooKeeper 85
4.4 小結(jié) 87
第5章 MapReduce實(shí)戰(zhàn) 88
5.1 前期準(zhǔn)備 88
5.2 查看YARN上的任務(wù) 95
5.3 加載配置文件 95
5.4
MapReduce實(shí)戰(zhàn) 96
5.5 小結(jié) 121
第6章 HBase實(shí)戰(zhàn) 122
6.1
HBase簡(jiǎn)介及架構(gòu) 122
6.2
HBase安裝 127
6.3
HBase實(shí)戰(zhàn) 129
6.3.1
HBase客戶端的操作 129
6.3.2
Java操作HBase 132
6.3.3
Scala操作HBase 136
6.4 小結(jié) 140
第7章 Hive實(shí)戰(zhàn) 141
7.1
Hive介紹和架構(gòu) 141
7.2
Hive數(shù)據(jù)類(lèi)型和表結(jié)構(gòu) 143
7.3 Hive分區(qū)、桶與傾斜 144
7.4
Hive安裝 146
7.5
Hive實(shí)戰(zhàn) 148
7.5.1
Hive客戶端的操作 148
7.5.2
Hive常用命令 154
7.5.3
Java操作Hive 155
7.6 小結(jié) 161
第8章 Scala實(shí)戰(zhàn) 162
8.1
Scala簡(jiǎn)介與安裝 162
8.2
IntelliJ IDEA開(kāi)發(fā)環(huán)境搭建 164
8.2.1
IntelliJ IDEA簡(jiǎn)介 164
8.2.2
IntelliJ IDEA安裝 164
8.2.3
軟件配置 166
8.3
IntelliJ IDEA建立Maven項(xiàng)目 171
8.4 基礎(chǔ)語(yǔ)法 176
8.5 函數(shù) 179
8.6 控制語(yǔ)句 181
8.7 函數(shù)式編程 184
8.8 模式匹配 189
8.9 類(lèi)和對(duì)象 191
8.10
Scala 異常處理 194
8.11
Trait(特征) 195
8.12
Scala文件I/O 196
8.13
作業(yè) 198
8.13.1
九九乘法表 198
8.13.2
冒泡排序 199
8.13.3
設(shè)計(jì)模式Command 200
8.13.4
集合對(duì)稱(chēng)判斷 202
8.13.5
綜合題 204
8.14
小結(jié) 206
第9章 Flume實(shí)戰(zhàn) 207
9.1
Flume概述 207
9.2
Flume的結(jié)構(gòu) 208
9.3
Flume安裝 211
9.4
Flume實(shí)戰(zhàn) 212
9.5 小結(jié) 214
第10章 Kafka實(shí)戰(zhàn) 215
10.1
Kafka概述 215
10.1.1
簡(jiǎn)介 215
10.1.2
使用場(chǎng)景 217
10.2
Kafka設(shè)計(jì)原理 218
10.3
Kafka主要配置 222
10.4
Kafka客戶端操作 224
10.5
Java操作Kafka 226
10.5.1
生產(chǎn)者 226
10.5.2
消費(fèi)者 228
10.6
Flume連接Kafka 229
10.7
小結(jié) 233
第11章 Spark實(shí)戰(zhàn) 234
11.1
Spark概述 234
11.2
Spark基本概念 234
11.3
Spark算子實(shí)戰(zhàn)及功能描述 238
11.3.1
Value型Transformation算子 238
11.3.2
Key-Value型Transformation算子 242
11.3.3
Actions算子 245
11.4
Spark Streaming實(shí)戰(zhàn) 248
11.5
Spark SQL和DataFrame實(shí)戰(zhàn) 253
11.6
小結(jié) 266
第12章 大數(shù)據(jù)網(wǎng)站日志分析項(xiàng)目
267
12.1
項(xiàng)目介紹 267
12.2
網(wǎng)站離線項(xiàng)目 267
12.2.1
業(yè)務(wù)框架圖 267
12.2.2
子服務(wù)趨勢(shì)分析詳解 268
12.2.3
表格的設(shè)計(jì) 272
12.2.4
提前準(zhǔn)備 274
12.2.5
項(xiàng)目步驟 287
12.3
網(wǎng)站實(shí)時(shí)項(xiàng)目 297
12.3.1
業(yè)務(wù)框架圖 297
12.3.2
子服務(wù)當(dāng)前在線詳解 297
12.3.3
表格的設(shè)計(jì) 302
12.3.4
提前準(zhǔn)備 304
12.3.5
項(xiàng)目步驟 327
12.4
小結(jié) 337