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