高性能分布式計算系統開發與實現:基于Hadoop、Scalding和Spark( 簡體 字) | |
作者:(印度)K. G.斯里尼瓦沙(K. G. Srinivasa)阿尼爾·庫馬爾·穆帕拉(Anil Kumar Muppalla) 著 | 類別:1. -> 程式設計 -> 綜合 |
出版社:機械工業出版社 | 3dWoo書號: 49479 詢問書籍請說出此書號! 有庫存 NT售價: 345 元 |
出版日:7/1/2018 | |
頁數:234 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111601531 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
譯者序
前言 作者簡介 第一部分 高性能分布式計算編程基礎 第1章 引言2 1.1 分布式系統2 1.2 分布式系統類型5 1.2.1 分布式嵌入式系統5 1.2.2 分布式信息系統7 1.2.3 分布式計算系統8 1.3 分布式計算架構9 1.4 分布式文件系統10 1.4.1 分布式文件系統需求10 1.4.2 分布式文件系統架構11 1.5 分布式系統面臨的挑戰13 1.6 分布式系統的發展趨勢16 1.7 高性能分布式計算系統示例18 參考文獻20 第2章 Hadoop入門22 2.1 Hadoop簡介22 2.2 Hadoop生態系統24 2.3 Hadoop分布式文件系統26 2.3.1 HDFS的特性26 2.3.2 名稱節點和數據節點27 2.3.3 文件系統28 2.3.4 數據復制28 2.3.5 通信30 2.3.6 數據組織30 2.4 MapReduce準備工作31 2.5 安裝前的準備33 2.6 單節點集群的安裝35 2.7 多節點集群的安裝38 2.8 Hadoop編程45 2.9 Hadoop流48 參考文獻51 第3章 Spark入門53 3.1 Spark簡介53 3.2 Spark內部結構54 3.3 Spark安裝58 3.3.1 安裝前的準備58 3.3.2 開始使用60 3.3.3 示例:Scala應用63 3.3.4 Python下Spark的使用65 3.3.5 示例:Python應用67 3.4 Spark部署68 3.4.1 應用提交68 3.4.2 單機模式70 參考文獻72 第4章 Scalding和Spark的內部編程74 4.1 Scalding簡介74 4.1.1 安裝74 4.1.2 編程指南77 4.2 Spark編程指南103 參考文獻120 第二部分 使用Hadoop、Scalding和Spark的案例研究 第5章 案例研究Ⅰ:使用Scalding和Spark進行數據聚類122 5.1 簡介122 5.2 聚類122 5.2.1 聚類方法123 5.2.2 聚類處理125 5.2.3 K均值算法125 5.2.4 簡單的K均值示例126 5.3 實現128 問題142 參考文獻142 第6章 案例研究Ⅱ:使用Scalding和Spark進行數據分類144 6.1 分類145 6.2 概率論146 6.2.1 隨機變量146 6.2.2 分布146 6.2.3 均值和方差147 6.3 樸素貝葉斯148 6.3.1 概率模型148 6.3.2 參數估計和事件模型149 6.3.3 示例150 6.4 樸素貝葉斯分類器的實現152 6.4.1 Scalding實現153 6.4.2 結果166 問題168 參考文獻168 第7章 案例研究Ⅲ:使用Scalding和Spark進行回歸分析169 7.1 回歸分析的步驟169 7.2 實現細節172 7.2.1 線性回歸:代數方法173 7.2.2 代數方法的Scalding實現174 7.2.3 代數方法的Spark實現179 7.2.4 線性回歸:梯度下降法184 7.2.5 梯度下降法的Scalding實現187 7.2.6 梯度下降法的Spark實現195 問題198 參考文獻199 第8章 案例研究Ⅳ:使用Scalding和Spark實現推薦系統200 8.1 推薦系統200 8.1.1 目標201 8.1.2 推薦系統的數據源201 8.1.3 推薦系統中使用的技術202 8.2 實現細節204 8.2.1 Spark實現206 8.2.2 Scalding實現221 問題230 參考文獻230 索引233 本書結合Hadoop、Scalding和Spark等開放源碼工具和技術,介紹大規模分布式處理系統的開發與實現。書中不僅全面闡述構建高性能分布式計算系統用到的主流技術,還提供了寶貴的實踐經驗,書中的應用實例、案例研究和可運行的源碼有助于讀者理解高性能分布式計算實現中較難理解的問題。
本書特色 系統介紹主流分布式系統的一般架構、設計核心,并通過示例說明其在發展過程中遇到的技術難題和該領域近年來的發展趨勢。 全面介紹Hadoop、Scalding、Spark生態系統,涵蓋安裝、編程、實現,循序漸進的說明有助于提升讀者使用主流大數據技術解決實際問題的能力。 本書給出了大量案例,涉及常見應用領域和計算方法。讀者在了解理論知識之后,通過這些實踐,可掌握常用主流技術的應用方法,并將其遷移到實際工作場景中。 過去的二十年中,隨著計算機的使用越來越廣泛,產生了大量的數據。生產與生活中各類設備和工具的數字化也促進了數據的增長。市場中,對這些龐大且不斷增長的數據進行存儲、處理和分析的需求應運而生。在硬件層面,每秒進行萬億次浮點運算的高性能計算(HPC)系統可以對龐大的數據進行管理。由于單個計算機無法應對其操作的復雜性,因此HPC系統需要在分布式環境中運行。可以通過兩種趨勢實現萬億次浮點的分布式運算。一種是通過全球網絡連接計算機,實現復雜數據的分布式管理。另一種是采用專用的處理器,并集中存放,這樣可以縮短機器之間的數據傳輸時間。這兩種趨勢正在呈現快速的融合之勢,必然會為浩繁的數據處理問題帶來更為迅捷和有效的硬件解決方案。
在軟件層面,Apache Hadoop在解決龐大數據的管理問題方面已經是久負盛名。Hadoop的生態系統包括Hadoop分布式文件系統(HDFS)、MapReduce框架(支持多種數據格式和數據源)、單元測試、對變體和項目進行聚類(如Pig、Hive等)。它能夠實現包括存儲和處理在內的全生命周期的數據管理。Hadoop的優勢在于,它通過分布式模塊處理大型數據。它還可以處理非結構化數據,這使其更具吸引力。與HPC骨干網結合,Hadoop可以使處理海量數據的任務變得非常簡單。 如今,很多高級的Hadoop框架,如Pig、Hive、Scoobi、Scrunch、Cascalog、Scald-ing和Spark,使得Hadoop易于操作。它們中大多數都得到著名企業的支持,如Yahoo(Pig)、Facebook(Hive)、Cloudera(Scrunch)和Twitter(Scalding),這說明Hadoop在工業領域得到了廣泛支持。這些框架使用的是Hadoop的基礎模塊,例如HDFS和MapReduce,但是通過創建一個抽象來隱藏Hadoop模塊的復雜性,為復雜的數據處理提供了一種簡單的方法。這個抽象的一個例證就是Cascading。許多具體的語言是使用Cascading的框架創建的。其中一個實例就是Twitter的Scalding,它用來查詢存儲在HDFS中的大型數據集,如Twitter上的推文。 Hadoop和Scalding中的數據存儲大多基于磁盤。這一結構因其較長的數據尋道和傳輸時間影響了運行速率。如果數據從磁盤中讀取然后保持在內存中,運行速率會提高數倍。Spark實現了這一概念,并宣稱其效率較之MapReduce在內存中快100倍,在磁盤上快10倍。Spark使用了彈性分布式數據集的基本抽象,這些數據集是分布式的不可變集合。由于Spark將數據存儲在內存中,因此迭代算法可以在數據挖掘和機器學習方面更有效地發揮作用。 目標 本書旨在介紹使用自由和開放源碼的工具和技術(如Hadoop、Scalding、Spark等)構建分布式處理系統的方法,關鍵目標包括以下幾點。 使讀者掌握當前使用Hadoop、Scalding和Spark構建高性能分布式計算系統的新發展。 為讀者提供相關理論的軟件框架和實踐途徑。 為學生和實踐者使用自由及開放源碼軟件技術(如Hadoop、Scalding和Spark)提供指導和實例。 使讀者加深對與高性能分布式計算(HPDC)相關的新興范式在構建可擴展軟件系統以供大規模數據處理方面的理解。 本書結構 本書共8章,分成兩部分,各章內容概述如下。 第一部分 高性能分布式計算編程基礎 第1章闡述構成現代HPDC范式(如云計算、網格和集群系統等)主體的分布式系統的基本知識。從討論各種形式的分布式系統開始,解析它們的通用架構,也談及其設計的核心,即分布式文件系統。此外,還通過相關的示例說明其在發展過程中遇到的技術難題和該領域近年來的發展趨勢。 第2章概述Hadoop生態系統,一步步地介紹系統的安裝、編程和實現。第3章描述Spark的核心—彈性分布式數據集,談及其安裝、API編程,并給出一些范例。第4章重點闡述Hadoop流,也涉及Scalding的應用,并討論Python在Hadoop和Spark中的應用。 第二部分 使用Hadoop、Scalding和Spark的案例研究 本書并不局限于解釋基本的理論常識,它的優勢在于提供了程序范例。書中給出四個案例,內容涉及很多應用領域和計算方法,足以令懷疑論者變成Scalding和Spark的信眾。第5章講述K均值聚類算法的實現,第6章講述使用樸素貝葉斯分類器進行數據分類。第7章進一步闡述使用Scalding和Spark的分布式系統中進行數據挖掘和機器學習的方法,并概述回歸分析。 當前,推薦系統在諸多領域都非常受歡迎。它自動充當了兩個不相交實體的中間人,在購物、檢索、出版領域的現代網絡應用中正日趨流行。一個可運行的推薦系統不僅需要有強大的計算引擎,還應該能夠實時擴展。第8章闡釋使用Scalding和Spark創建這樣一個推薦系統的過程。 目標受眾 本書的目標受眾主要包括: 軟件工程師和應用開發者 學生和大學講師 自由和開放源碼軟件的貢獻者 研究人員 代碼庫 書中使用的源碼和數據集可以從https://github.com/4ni1/hpdc-scalding-spark下載。 致謝 感謝以下人員在本書的準備過程中提供的支持和幫助: M. S.拉邁阿理工學院董事M. R. Seetharam先生 M. S.拉邁阿理工學院董事M. R. Ramaiah先生 M. S.拉邁阿理工學院行政主管S. M. Acharya先生 M. S.拉邁阿理工學院院長S. Y. Kulkarni博士 M. S.拉邁阿理工學院副院長N. V. R. Naidu博士 M. S.拉邁阿理工學院教務主任T. V. Suresh Kumar博士 感謝M. S.拉邁阿理工學院計算機科學與工程系的所有老師在本書的準備過程中給予我們靈感和鼓勵。感謝P. M. Krishnaraj先生和Siddesh G. M.博士的指導。同樣感謝Nikhil先生和Maaz先生在本書編寫上提供及時的幫助。感謝Scalding和Spark社區給予的支持。 感謝家人的支持與理解。 K. G. Srinivasa Anil Kumar Muppalla |