"使用Hadoop構(gòu)建更優(yōu)秀的大數(shù)據(jù)解決方案
Hadoop開源且基于Java、幾乎沒有入門障礙,它提供了迅速占據(jù)市場(chǎng)的實(shí)用大數(shù)據(jù)解決方案。
《Hadoop大數(shù)據(jù)解決方案》由包括已認(rèn)證Hadoop開發(fā)者、Committers和峰會(huì)演講者在內(nèi)的專家團(tuán)隊(duì)編寫,可以作為有關(guān)該框架流程和功能的自學(xué)教程。書中單獨(dú)介紹了各個(gè)組件,*后用實(shí)際項(xiàng)目將它們聯(lián)系起來并構(gòu)建示例應(yīng)用。本書跳過數(shù)據(jù)庫(kù)開發(fā)基礎(chǔ)知識(shí),直奔主題,幫助有經(jīng)驗(yàn)的開發(fā)者快速上手,并開始在真實(shí)場(chǎng)景中使用Hadoop。
主要內(nèi)容
◆ 向你展示使用Hadoop Stack配置存儲(chǔ)、用戶體驗(yàn)和內(nèi)存計(jì)算的方法
◆ 解釋使用Kafka實(shí)時(shí)消息和Storm數(shù)據(jù)流將Hadoop與其他系統(tǒng)集成的方法
◆ 演示關(guān)鍵安全特性與技術(shù),同時(shí)給出保證數(shù)據(jù)安全的專家建議
◆ 講授使用Apache BigTop打包、測(cè)試和配置的基礎(chǔ)知識(shí),以及使用Ignite更快速執(zhí)行MapReduce的方法
◆ 帶你領(lǐng)略示例應(yīng)用構(gòu)建過程,展示核心組件如何協(xié)同工作,同時(shí)提供了所有示例代碼"
本書面向使用Hadoop來執(zhí)行數(shù)據(jù)相關(guān)作業(yè)的任何人,也適合希望更好地從任意數(shù)據(jù)存儲(chǔ)中獲取有意義信息的讀者。這包括大數(shù)據(jù)解決方案架構(gòu)師、Linux系統(tǒng)和大數(shù)據(jù)工程師、大數(shù)據(jù)平臺(tái)工程師、Java程序員和數(shù)據(jù)庫(kù)管理員。
序言
Hadoop是一個(gè)在Apache 2.0許可證下可用的開源項(xiàng)目。它能在分布式服務(wù)器群集中管理和存儲(chǔ)超大規(guī)模的數(shù)據(jù)集。Hadoop最具優(yōu)勢(shì)的特性之一是其容錯(cuò)性,這使得大數(shù)據(jù)應(yīng)用在遇到失敗事件時(shí)能夠繼續(xù)正常運(yùn)行。使用Hadoop的另一個(gè)優(yōu)勢(shì)是可擴(kuò)展性。這種編程邏輯擁有從單機(jī)向大量服務(wù)器擴(kuò)展的潛質(zhì),而每臺(tái)服務(wù)器均具備本地計(jì)算和存儲(chǔ)能力。本書讀者對(duì)象本書面向使用Hadoop來執(zhí)行數(shù)據(jù)相關(guān)作業(yè)的任何人,也適合希望更好地從任意數(shù)據(jù)存儲(chǔ)中獲取有意義信息的讀者。這包括大數(shù)據(jù)解決方案架構(gòu)師、Linux系統(tǒng)和大數(shù)據(jù)工程師、大數(shù)據(jù)平臺(tái)工程師、Java程序員和數(shù)據(jù)庫(kù)管理員。如果你有興趣學(xué)習(xí)關(guān)于Hadoop的更多知識(shí)并且想了解如何抽取特定組件做進(jìn)一步分析或研究,那么這本書正好適合你。閱讀本書的前提你應(yīng)該擁有開發(fā)經(jīng)驗(yàn)并且了解Hadoop的基礎(chǔ)知識(shí),而且要對(duì)在實(shí)際環(huán)境中應(yīng)用它感興趣。示例的源代碼可以從www.wrox.com/go/professionalhadoop或者h(yuǎn)ttps://github.com/backstopmedia/hadoopbook下載。本書的結(jié)構(gòu)本書共分為8章,內(nèi)容如下:第1章:Hadoop概述第2章:存儲(chǔ)第3章:計(jì)算第4章:用戶體驗(yàn)第5章:與其他系統(tǒng)集成第6章:Hadoop安全第7章:自由的生態(tài)圈:Hadoop與Apache BigTop第8章:Hadoop軟件棧的In-Memory計(jì)算約定為幫助你盡可能地理解文章含義并抓住重點(diǎn),我們?cè)诒緯惺褂昧舜罅考s定。文中所使用的樣式如下:● 當(dāng)介紹新術(shù)語和重要詞語時(shí),我們會(huì)突出展現(xiàn)它們。● 我們像這樣展示正文中的代碼:persistence.properties。● 我們以此種樣式來展示本書中的所有代碼片段: FileSystem fs = FileSystem.get(URI.create(uri), conf); InputStream in = null; try {● 我們以這樣的字體展示URL:http://:50075p2p.wrox.com要與作者和同行討論,請(qǐng)加入http://p2p.wrox.com上的P2P論壇。這個(gè)論壇是一個(gè)基于Web的系統(tǒng),便于你張貼與Wrox圖書相關(guān)的消息和相關(guān)技術(shù),與其他讀者和技術(shù)用戶交流心得。該論壇提供了訂閱功能,當(dāng)論壇上有新的消息時(shí),它可以給你傳送感興趣的論題。Wrox作者、編輯和其他業(yè)界專家和讀者都會(huì)到這個(gè)論壇上探討問題。在http://p2p.wrox.com上,有許多不同的論壇,它們不僅有助于閱讀本書,還有助于開發(fā)自己的應(yīng)用程序。要加入論壇,可以遵循下面的步驟:(1) 進(jìn)入http://p2p.wrox.com,單擊Register鏈接。(2) 閱讀使用協(xié)議,并單擊Agree按鈕。(3) 填寫加入該論壇所需要的信息和自己希望提供的其他信息,單擊Submit按鈕。(4) 你會(huì)收到一封電子郵件,其中的信息描述了如何驗(yàn)證賬戶,完成加入過程。
加入論壇后,就可以張貼新消息,響應(yīng)其他用戶張貼的消息。可以隨時(shí)在Web上閱讀消息。如果要讓該網(wǎng)站給自己發(fā)送特定論壇中的消息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標(biāo)。關(guān)于使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作情況以及P2P和Wrox圖書的許多常見問題。要閱讀FAQ,可以在任意P2P頁(yè)面上單擊FAQ鏈接。源代碼讀者在學(xué)習(xí)本書中的示例時(shí),可以手動(dòng)輸入所有的代碼,也可以使用本書附帶的源代碼文件。本書使用的所有源代碼都可以從站點(diǎn)http://www.wrox.com下載。具體而言,本書的代碼可以通過網(wǎng)站http://www.wrox.com/go/professionalhadoop上的Download Code選項(xiàng)卡下載。還可以在站點(diǎn)http://www.wrox.com上通過輸入ISBN(本書的ISBN為9781119267171)來獲取本書的代碼。也可以掃描封底的二維碼獲取本書的源代碼。當(dāng)前所有Wrox圖書的代碼下載的完整列表都可以通過www.wrox.com/dynamic/books/download.aspx站點(diǎn)來獲取。
下載代碼后,只需要用自己喜歡的解壓縮軟件對(duì)它進(jìn)行解壓縮即可。另外,也可以進(jìn)入http://www.wrox.com/dynamic/books/ download.aspx上的Wrox代碼下載主頁(yè),查看本書和其他Wrox圖書的所有代碼。勘誤表盡管我們已經(jīng)盡了各種努力來保證文章或代碼中不出現(xiàn)錯(cuò)誤,但是錯(cuò)誤總是難免的,如果你在本書中找到了錯(cuò)誤,例如拼寫錯(cuò)誤或代碼錯(cuò)誤,請(qǐng)告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當(dāng)然,這還有助于提供更高質(zhì)量的信息。請(qǐng)給wkservice@vip.163.com發(fā)電子郵件,我們就會(huì)檢查你的信息,如果是正確的,我們將在本書的后續(xù)版本中采用。要在網(wǎng)站上找到本書的勘誤表,可以登錄www.wrox.com/go/ professionalhadoop,并單擊Errata鏈接。在該頁(yè)面上可以查看到Wrox編輯已提交和粘貼的所有勘誤項(xiàng)。如果在Book Errata頁(yè)面上沒有看到你找出的錯(cuò)誤,請(qǐng)進(jìn)入www.worx.com/contact/techsupport.shtml,并填寫表單,發(fā)電子郵件,我們就會(huì)檢查你的信息,如果是正確的,就在本書的勘誤表中粘貼一個(gè)消息,我們將在本書的后續(xù)版本中采用。
第1章 Hadoop概述 1
1.1 商業(yè)分析與大數(shù)據(jù) 2
1.1.1
Hadoop的組件 3
1.1.2
Hadoop分布式文件系統(tǒng)(HDFS) 3
1.1.3
MapReduce是什么 4
1.1.4
YARN是什么 5
1.2
ZooKeeper是什么 6
1.3
Hive是什么 7
1.4 與其他系統(tǒng)集成 8
1.4.1
Hadoop生態(tài)系統(tǒng) 9
1.4.2
數(shù)據(jù)集成與Hadoop 11
1.5 小結(jié) 16
第2章 存儲(chǔ) 19
2.1
Hadoop HDFS的基礎(chǔ)知識(shí) 20
2.1.1
概念 21
2.1.2
架構(gòu) 25
2.1.3
接口 29
2.2 在分布式模式下設(shè)置HDFS群集 35
2.3
HDFS的高級(jí)特性 40
2.3.1
快照 41
2.3.2
離線查看器 44
2.3.3
分層存儲(chǔ) 52
2.3.4
糾刪碼 55
2.4 文件格式 59
2.5 云存儲(chǔ) 63
2.6 小結(jié) 64
第3章 計(jì)算 65
3.1
Hadoop MapReduce的基礎(chǔ) 66
3.1.1
概念 66
3.1.2
架構(gòu) 69
3.2 如何啟動(dòng)MapReduce作業(yè) 76
3.2.1
編寫Map任務(wù) 77
3.2.2
編寫reduce任務(wù) 79
3.2.3
編寫MapReduce作業(yè) 80
3.2.4
配置 83
3.3
MapReduce的高級(jí)特性 85
3.3.1
分布式緩存 85
3.3.2
計(jì)數(shù)器 87
3.3.3
作業(yè)歷史服務(wù)器 89
3.4 與Spark作業(yè)的區(qū)別 91
3.5 小結(jié) 92
第4章 用戶體驗(yàn) 93
4.1
Apache Hive 94
4.1.1
安裝Hive 96
4.1.2
HiveQL 97
4.1.3
UDF/SerDe 103
4.1.4
Hive調(diào)優(yōu) 105
4.2
Apache Pig 106
4.2.1
安裝Pig 107
4.2.2
Pig Latin 108
4.3
UDF 110
4.4
Hue 111
4.5
Apache Oozie 114
4.5.1
安裝Oozie 115
4.5.2
Oozie的工作原理 118
4.5.3
工作流/協(xié)調(diào)器 119
4.5.4
Oozie CLI 124
4.6 小結(jié) 124
第5章 與其他系統(tǒng)集成 125
5.1
Apache Sqoop 126
5.2
Apache Flume 130
5.3
Apache Kafka 136
5.3.1
工作原理 138
5.3.2
Kafka Connect 141
5.3.3
流處理 143
5.4
Apache Storm 144
5.4.1
工作原理 145
5.4.2
Trident 148
5.4.3
Kafka集成 149
5.5 小結(jié) 152
第6章 Hadoop安全 153
6.1 提升Hadoop群集安全性 154
6.1.1
邊界安全 154
6.1.2
Kerberos認(rèn)證 156
6.1.3
Hadoop中的服務(wù)級(jí)授權(quán) 162
6.1.4
用戶模擬 167
6.1.5
提升HTTP信道的安全性 170
6.2 提升數(shù)據(jù)安全性 174
6.2.1
數(shù)據(jù)分類 175
6.2.2
將數(shù)據(jù)傳到群集 176
6.2.3
保護(hù)群集中的數(shù)據(jù) 182
6.3 增強(qiáng)應(yīng)用程序安全性 189
6.3.1
YARN架構(gòu) 189
6.3.2
YARN中的應(yīng)用提交 190
6.4 小結(jié) 195
第7章 自由的生態(tài)圈:Hadoop與Apache
BigTop 197
7.1 基礎(chǔ)概念 198
7.1.1
軟件棧 199
7.1.2
測(cè)試棧 200
7.1.3
在我的筆記本電腦上工作 201
7.2 開發(fā)定制的軟件棧 201
7.2.1
Apache Bigtop:歷史 201
7.2.2
Apache Bigtop:概念和哲學(xué)思想 202
7.2.3
項(xiàng)目結(jié)構(gòu) 204
7.2.4
談?wù)剺?gòu)建系統(tǒng) 205
7.2.5
工具鏈和開發(fā)環(huán)境 206
7.2.6
BOM定義 207
7.3 部署 208
7.3.1
Bigtop Provisioner 208
7.3.2
群集的無主節(jié)點(diǎn)Puppet部署 209
7.3.3
使用Puppet進(jìn)行配置管理 213
7.4 集成驗(yàn)證 215
7.4.1
iTests和驗(yàn)證應(yīng)用程序 216
7.4.2
棧集成測(cè)試開發(fā) 217
7.4.3
棧的驗(yàn)證 220
7.4.4
群集故障測(cè)試 221
7.4.5
棧的冒煙測(cè)試 222
7.5 將所有工作組合在一起
223
7.6 小結(jié) 224
第8章 Hadoop軟件棧的In-Memory計(jì)算 227
8.1
In-Memory計(jì)算簡(jiǎn)介 229
8.2
Apache Ignite:內(nèi)存優(yōu)先 231
8.2.1
Apache Ignite的系統(tǒng)體系架構(gòu) 232
8.2.2
數(shù)據(jù)網(wǎng)格 233
8.2.3
高可用性討論 236
8.2.4
計(jì)算網(wǎng)格 237
8.2.5
服務(wù)網(wǎng)格 238
8.2.6
內(nèi)存管理 238
8.2.7
持久化存儲(chǔ) 240
8.3 使用Ignite加速舊式Hadoop
240
8.3.1
In-Memory存儲(chǔ)的好處 241
8.3.2
內(nèi)存文件系統(tǒng):HDFS緩存 242
8.3.3
In-Memory MapReduce 243
8.4
Apache Ignite的高級(jí)用法 247
8.4.1
Spark和Ignite 247
8.4.2
共享狀態(tài) 249
8.4.3
Hadoop上的In-Memory SQL 251
8.4.4
使用Ignite的SQL 252
8.4.5
使用Apache Ignite進(jìn)行流處理 255
8.5 小結(jié) 256
術(shù)語表 259