"使用Hadoop構建更的大數據解決方案 Hadoop開源且基于Java、幾乎沒有入門障礙,它提供了迅速占據市場的實用大數據解決方案。 《Hadoop大數據解決方案》由包括已認證Hadoop開發者、Committers和峰會演講者在內的專家團隊編寫,可以作為有關該框架流程和功能的自學教程。書中單獨介紹了各個組件,后用實際項目將它們聯系起來并構建示例應用。本書跳過數據庫開發基礎知識,直奔主題,幫助有經驗的開發者快速上手,并開始在真實場景中使用Hadoop。 主要內容 向你展示使用Hadoop Stack配置存儲、用戶體驗和內存計算的方法 解釋使用Kafka實時消息和Storm數據流將Hadoop與其他系統集成的方法 演示關鍵安全特性與技術,同時給出保障數據安全的專家建議 講授使用Apache BigTop打包、測試和配置的基礎知識,以及使用Ignite更快速執行MapReduce的方法 帶你領略示例應用構建過程,展示核心組件如何協同工作,同時提供了所有示例代碼"
本書面向使用Hadoop來執行數據相關作業的任何人,也適合希望更好地從任意數據存儲中獲取有意義信息的讀者。這包括大數據解決方案架構師、Linux系統和大數據工程師、大數據平臺工程師、Java程序員和數據庫管理員。
第1章 Hadoop概述 1
1.1 商業分析與大數據 2
1.1.1 Hadoop的組件 3
1.1.2 Hadoop分布式文件系統(HDFS) 3
1.1.3 MapReduce是什么 4
1.1.4 YARN是什么 5
1.2 ZooKeeper是什么 6
1.3 Hive是什么 7
1.4 與其他系統集成 8
1.4.1 Hadoop生態系統 9
1.4.2 數據集成與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作業 76
3.2.1 編寫Map任務 77
3.2.2 編寫reduce任務 79
3.2.3 編寫MapReduce作業 80
3.2.4 配置 83
3.3 MapReduce的高級特性 85
3.3.1 分布式緩存 85
3.3.2 計數器 87
3.3.3 作業歷史服務器 89
3.4 與Spark作業的區別 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調優 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 工作流/協調器 119
4.5.4 Oozie CLI 124
4.6 小結 124
第5章 與其他系統集成 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 提升數據安全性 174
6.2.1 數據分類 175
6.2.2 將數據傳到群集 176
6.2.3 保護群集中的數據 182
6.3 增強應用程序安全性 189
6.3.1 YARN架構 189
6.3.2 YARN中的應用提交 190
6.4 小結 195
第7章 自由的生態圈:Hadoop與Apache BigTop 197
7.1 基礎概念 198
7.1.1 軟件棧 199
7.1.2 測試棧 200
7.1.3 在我的筆記本電腦上工作 201
7.2 開發定制的軟件棧 201
7.2.1 Apache Bigtop:歷史 201
7.2.2 Apache Bigtop:概念和哲學思想 202
7.2.3 項目結構 204
7.2.4 談談構建系統 205
7.2.5 工具鏈和開發環境 206
7.2.6 BOM定義 207
7.3 部署 208
7.3.1 Bigtop Provisioner 208
7.3.2 群集的無主節點Puppet部署 209
7.3.3 使用Puppet進行配置管理 213
7.4 集成驗證 215
7.4.1 iTests和驗證應用程序 216
7.4.2 棧集成測試開發 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:內存優先 231
8.2.1 Apache Ignite的系統體系架構 232
8.2.2 數據網格 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 內存文件系統:HDFS緩存 242
8.3.3 In-Memory MapReduce 243
8.4 Apache Ignite的高級用法 247
8.4.1 Spark和Ignite 247
8.4.2 共享狀態 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
1.1 商業分析與大數據商業分析通過統計和業務分析對數據進行研究。Hadoop 允許你在其數據存儲中進行業務分析。這些結果使得組織和公司能夠做出有利于自身的更好商業決策。為加深理解,讓我們勾勒一下大數據的概況。鑒于所涉及數據的規模,它們會分布于大量存儲和計算節點上,而這得益于使用Hadoop。由于Hadoop 是分布式的(而非集中式的),因而不具備關系型數據庫管理系統(RDBMS)的特點。這使得你能夠使用Hadoop 所提供的大型數據存儲和多種數據類型。第1 章 Hadoop 概述3例如,讓我們考慮類似Google、Bing 或者Twitter 這樣的大型數據存儲。所有這些數據存儲都會隨著諸如查詢和龐大用戶基數等活動事件而呈現出指數增長。Hadoop 的組件可以幫助你處理這些大型數據存儲。類似Google 這樣的商業公司可使用Hadoop 來操作、管理其數據存儲并從中產生出有意義的結果。通常用于商業分析的傳統工具并不旨在處理或分析超大規模數據集,但Hadoop 是一個適用于這些商業模型的解決方案。1.1.1 Hadoop 的組件Hadoop Common 是Hadoop 的基礎,因為它包含主要服務和基本進程,例如對底層操作系統及其文件系統的抽象。HadoopCommon 還包含必要的Java 歸檔(Java Archive,JAR)文件和用于啟動Hadoop 的腳本。Hadoop Common 包甚至提供了源代碼和文檔,以及貢獻者的相關內容。如果沒有Hadoop Common,你無法運行Hadoop。與任何軟件棧一樣,Apache 對于配置Hadoop Common 有一定要求。大體了解Linux 或Unix 管理員所需的技能將有助于你完成配置。Hadoop Common 也稱為Hadoop Stack,并不是為初學者設計的,因此實現的速度取決于你的經驗。事實上,Apache 在其網站上明確指出,如果你還在努力學習如何管理Linux 環境的話,那么Hadoop并不是你能夠應付的任務。建議在嘗試安裝Hadoop 之前,你需要先熟悉此類環境。1.1.2 Hadoop 分布式文件系統(HDFS)在Hadoop Common 安裝完成后,是時候該研究Hadoop Stack的其余組件了。HDFS(Hadoop Distributed File System)提供一個分布式文件系統,設計目標是能夠運行在基礎硬件組件之上。大多數企業被其最小化的系統配置要求所吸引。此環境可以在虛擬機(VirtualHadoop 大數據解決方案4Machine,VM)或筆記本電腦上完成初始配置,而且可以升級到服務器部署。它具有高度的容錯性,并且被設計為能夠部署在低成本的硬件之上。它提供對應用程序數據的高吞吐量訪問,適合于面向大型數據集的應用程序。在任何環境中,硬件故障都是不可避免的。有了HDFS,你的數據可以跨越數千臺服務器,而每臺服務器上均包含一部分基礎數據。這就是容錯功能發揮作用的地方。現實情況是,這么多服務器總會遇到一臺或者多臺無法正常工作的風險。HDFS 具備檢測故障和快速執行自動恢復的功能。HDFS 的設計針對批處理做了優化,它提供高吞吐量的數據訪問,而非低延遲的數據訪問。運行在HDFS 上的應用程序有著大型數據集。在HDFS 中一個典型的文件大小可以達到數百GB 或更大,所以HDFS 顯然支持大文件。它提供高效集成數據帶寬,并且單個群集可以擴展至數百節點。Hadoop 是一個單一功能的分布式系統,為了并行讀取數據集并提供更高的吞吐量,它與群集中的機器進行直接交互。可將Hadoop想象為一個動力車間,它讓單個CPU 運行在群集中大量低成本的機器上。既然已經介紹了用于讀取數據的工具,下一步便是用MapReduce 來處理它。1.1.3 MapReduce 是什么MapReduce 是Hadoop 的一個編程組件,用于處理和讀取大型數據集。MapReduce 算法賦予了Hadoop 并行化處理數據的能力。簡而言之,MapReduce 用于將大量數據濃縮為有意義的統計分析結果。MapReduce 可以執行批處理作業,即能在處理過程中多次讀取大量數據來產生所需的結果。對于擁有大型數據存儲或者數據湖的企業和組織來說,這是一種重要的組件,它將數據限定到可控的大小范圍內,以便用于分析第1 章 Hadoop 概述5或查詢。如圖1-1 所示,MapReduce 的工作流程就像一個有著大量齒輪的古老時鐘。在移動到下一個之前,每一個齒輪執行一項特定任務。它展現了數據被切分為更小尺寸以供處理的過渡狀態。主節點客戶端HDFS分布式數據存儲YARN分布式數據處理從屬NAMENODE活動NAMENODE備用NAMENODE調度器共享編輯日志或者JOURNALNODE從節點容器 容器容器資源管理器數據節點 數據節點節點管理器 節點管理器數據節點節點管理器圖1-1MapReduce 的功能使得它成為最常用的批處理工具之一。該處理器的靈活性使其能利用自身的影響力來挑戰現有系統。通過將數據處理的工作負載分為多個并行執行的任務,MapReduce 允許其用戶處理存儲于HDFS 上不限數量的任意類型的數據。因此,MapReduce讓Hadoop 成為了一款強大工具。在Hadoop 最近的發展中,另有一款稱為YARN 的組件已經可用于進一步管理Hadoop 生態系統。1.1.4 YARN 是什么YARN 基礎設施(另一個資源協調器)是一項用于提供執行應用程序所需的計算資源(內存、CPU 等)的框架。YARN 有什么誘人的特點或是性質?其中兩個重要的部分是資源管理器和節點管理器。讓我們來勾勒YARN 的框架。首先考慮一個兩層的群集,其中資源管理器在頂層(每個群集中只有一個)。資Hadoop 大數據解決方案6源管理器是主節點。它了解從節點所在的位置(較底層)以及它們擁有多少資源。它運行了多種服務,其中最重要的是用于決定如何分配資源的資源調度器。節點管理器(每個群集中有多個)是此基礎設施的從節點。當開始運行時,它向資源管理器聲明自己。此類節點有能力向群集提供資源,它的資源容量即內存和其他資源的數量。在運行時,資源調度器將決定如何使用該容量。Hadoop 2 中的YARN框架允許工作負載在各種處理框架之間動態共享群集資源,這些框架包括MapReduce、Impala 和Spark。YARN 目前用于處理內存和CPU,并將在未來用于協調其他資源,例如磁盤和網絡I/O。1.2 ZooKeeper 是什么ZooKeeper 是另一項Hadoop 服務——分布式系統環境下的信息保管員。ZooKeeper 的集中管理解決方案用于維護分布式系統的配置。由于ZooKeeper 用于維護信息,因此任何新節點一旦加入系統,將從ZooKeeper 中獲取近期的集中式配置。這也使得你只需要通過ZooKeeper 的一個客戶端改變集中式配置,便能改變分布式系統的狀態。名稱服務是將某個名稱映射為與該名稱相關信息的服務。它類似于活動目錄,作為一項名稱服務,活動目錄的作用是將某人的用戶ID(用戶名)映射為環境中的特定訪問或權限。同樣,DNS 服務作為名稱服務,將域名映射為IP 地址。通過在分布式系統中使用ZooKeeper,你能記錄哪些服務器或服務正處于運行狀態,并且能夠通過名稱查看它們的狀態。如果有節點出現問題導致宕機,ZooKeeper 會采用一種通過選舉leader 來完成自動故障切換的策略,這是它自身已經支持的解決方案(見圖1-2)。選舉leader 是一項服務,可安裝在多臺機器上作為冗余備用,但在任何時刻只有一臺處于活躍狀態。如果這個活躍的第1 章 Hadoop 概述7服務因為某些原因發生了故障,另一個服務則會起來繼續它的工作。
方案很多,內容豐富翔實,以后寫技術材料可以參考
不錯,不過這快遞我真要說下,鄭州速捷快遞,鄭州倉庫出倉,我就在鄭州本地,三天才送到,不知道該說啥