- 大數(shù)據(jù)技術(shù)體系詳解:原理、架構(gòu)與實踐
- 董西成
- 1697字
- 2019-01-04 11:06:08
前言
為什么要寫這本書
隨著大數(shù)據(jù)技術(shù)的普及,它已經(jīng)被廣泛應用于互聯(lián)網(wǎng)、電信、金融、工業(yè)制造等諸多行業(yè)。據(jù)相關(guān)報告統(tǒng)計,大數(shù)據(jù)人才需求呈井噴態(tài)勢,越來越多的程序員開始學習大數(shù)據(jù)技術(shù),這使得它已經(jīng)成為程序員所需的基本技能。
為了滿足大數(shù)據(jù)人才市場需求,越來越多的大數(shù)據(jù)技術(shù)書籍不斷面世,包括《Hadoop權(quán)威指南》《Hadoop實戰(zhàn)》等。盡管如此,面向初、中級學者,能夠系統(tǒng)化、體系化介紹大數(shù)據(jù)技術(shù)的基礎書籍并不多見。筆者曾接觸過大量大數(shù)據(jù)初學者,他們一直渴望能有一本簡單且易于理解的教科書式的大數(shù)據(jù)書籍出現(xiàn)。為了滿足這些讀者的需求,筆者根據(jù)自己多年的數(shù)據(jù)項目和培訓經(jīng)驗,繼《Hadoop技術(shù)內(nèi)幕》書籍之后,于兩年前開始嘗試編寫一本淺顯易讀的大數(shù)據(jù)基礎書籍。
相比于現(xiàn)有的大數(shù)據(jù)基礎書籍,本書具有三大特色:①系統(tǒng)性:深度剖析大數(shù)據(jù)技術(shù)體系的六層架構(gòu);②技術(shù)性:詳盡介紹Hadoop和Spark等主流大數(shù)據(jù)技術(shù);③實用性:理論與實踐相結(jié)合,探討常見的大數(shù)據(jù)問題。本書嘗試以“數(shù)據(jù)生命周期”為線索,按照分層結(jié)構(gòu)逐步介紹大數(shù)據(jù)技術(shù)體系,涉及數(shù)據(jù)收集、數(shù)據(jù)存儲、資源管理和服務協(xié)調(diào)、計算引擎及數(shù)據(jù)分析五層技術(shù)架構(gòu),由點及面,最終通過綜合案例將這些技術(shù)串接在一起。
讀者對象
(1)大數(shù)據(jù)應用開發(fā)人員
本書用了相當大的篇幅介紹各個大數(shù)據(jù)系統(tǒng)的適用場景和使用方式,能夠很好地幫助大數(shù)據(jù)應用開發(fā)工程師設計出滿足要求的程序。
(2)大數(shù)據(jù)講師和學員
本書按照大數(shù)據(jù)五層架構(gòu),即數(shù)據(jù)收集→數(shù)據(jù)存儲→資源管理與服務協(xié)調(diào)→計算引擎→數(shù)據(jù)分析,完整介紹了整個大數(shù)據(jù)技術(shù)體系,非常易于理解,此外,每節(jié)包含大量代碼示例和思考題目,非常適合大數(shù)據(jù)教學。
(3)大數(shù)據(jù)運維工程師
對于一名合格的大數(shù)據(jù)運維工程師而言,適當?shù)亓私獯髷?shù)據(jù)系統(tǒng)的應用場景、設計原理和架構(gòu)是十分有幫助的,這不僅有助于我們更快地排除各種可能的大數(shù)據(jù)系統(tǒng)故障,也能夠讓運維人員與研發(fā)人員更有效地進行溝通。本書可以有效地幫助運維工程師全面理解當下主流的大數(shù)據(jù)技術(shù)體系。
(4)開源軟件愛好者
開源大數(shù)據(jù)系統(tǒng)(比如Hadoop和Spark)是開源軟件中的佼佼者,它們在實現(xiàn)的過程中吸收了大量開源領(lǐng)域的優(yōu)秀思想,同時也有很多值得學習的創(chuàng)新。通過閱讀本書,這部分讀者不僅能領(lǐng)略到開源軟件的優(yōu)秀思想,還可以學習如何構(gòu)建一套完整的技術(shù)生態(tài)。
如何閱讀本書
本書以數(shù)據(jù)在大數(shù)據(jù)系統(tǒng)中的生命周期為線索,介紹以Hadoop與Spark為主的開源大數(shù)據(jù)技術(shù)棧。本書內(nèi)容組織方式如下。
? 第一部分:主要介紹大數(shù)據(jù)體系架構(gòu),以及Google和Hadoop技術(shù)棧,讓讀者從高層次上對大數(shù)據(jù)技術(shù)有一定了解。
? 第二部分:介紹大數(shù)據(jù)分析相關(guān)技術(shù),主要涉及關(guān)系型數(shù)據(jù)收集工具Sqoop與Canel、非關(guān)系型數(shù)據(jù)收集系統(tǒng)Flume,以及分布式消息隊列Kafka。
? 第三部分:介紹大數(shù)據(jù)存儲相關(guān)技術(shù),涉及數(shù)據(jù)存儲格式、分布式文件系統(tǒng)及分布式數(shù)據(jù)庫三部分。
? 第四部分:介紹資源管理和服務協(xié)調(diào)相關(guān)技術(shù),涉及資源管理和調(diào)度系統(tǒng)YARN,以及資源協(xié)調(diào)系統(tǒng)ZooKeeper。
? 第五部分:介紹計算引擎相關(guān)技術(shù),包括批處理、交互式處理,以及流式實時處理三類引擎,內(nèi)容涉及MapReduce、Spark、Impala/Presto、Storm等常用技術(shù)。
? 第六部分:介紹數(shù)據(jù)分析相關(guān)技術(shù),涉及基于數(shù)據(jù)分析的語言HQL與SQL、大數(shù)據(jù)統(tǒng)一編程模型及機器學習庫等。
大數(shù)據(jù)體系的邏輯也是本書的邏輯,故這里給出大數(shù)據(jù)體系邏輯圖。

勘誤和支持
由于筆者的水平有限,編寫時間倉促,書中難免會出現(xiàn)一些錯誤或者不準確的地方,懇請讀者批評指正。為此,筆者特意創(chuàng)建了一個在線支持與應急方案的站點http://hadoop123.com和微信公眾號hadoop-123。你可以將書中的錯誤發(fā)布在Bug勘誤表頁面。如果你遇到任何問題,也可以訪問Q&A頁面,我將盡量在線上為你提供最滿意的解答。如果你有更多寶貴的意見,也歡迎發(fā)送郵件至郵箱dongxicheng@yahoo.com,期待能夠得到你們的真摯反饋。
獲取源代碼實例
本書各節(jié)的源代碼實例可從網(wǎng)站http://hadoop123.com或微信公眾號hadoop-123中獲取。
致謝
感謝我的導師廖華明副研究員,是她引我進入大數(shù)據(jù)世界。
感謝機械工業(yè)出版社華章公司的孫海亮編輯對本書的校訂,他的鼓勵和幫助使我順利完成了本書的編寫工作。
最后感謝我的父母,感謝他們的養(yǎng)育之恩,感謝兄長的鼓勵和支持,感謝他們時時刻刻給我以信心和力量!
謹以此書獻給我最親愛的家人,以及眾多熱愛大數(shù)據(jù)技術(shù)的朋友們!
董西成
- Python絕技:運用Python成為頂級數(shù)據(jù)工程師
- 數(shù)據(jù)可視化:從小白到數(shù)據(jù)工程師的成長之路
- Python金融大數(shù)據(jù)分析(第2版)
- 工業(yè)大數(shù)據(jù)分析算法實戰(zhàn)
- 云計算與大數(shù)據(jù)應用
- 大數(shù)據(jù)架構(gòu)和算法實現(xiàn)之路:電商系統(tǒng)的技術(shù)實戰(zhàn)
- 企業(yè)級數(shù)據(jù)與AI項目成功之道
- 金融商業(yè)算法建模:基于Python和SAS
- 云原生數(shù)據(jù)中臺:架構(gòu)、方法論與實踐
- IPython Interactive Computing and Visualization Cookbook(Second Edition)
- Access數(shù)據(jù)庫開發(fā)從入門到精通
- Hands-On Deep Learning for Games
- AndEngine for Android Game Development Cookbook
- 代碼的未來
- 算法設計與問題求解(第2版):計算思維培養(yǎng)