內容簡介
前言步入21世肯籃項紀以來再檔陵察,各領域的數據都呈現爆炸式的增長,對數據的管理和分析已成為人類面臨的巨大的挑戰。如今,工業界、研究界甚至政府部門都對大數據這一研究領域產生了巨大的興趣。《自然》、《科學》等國際知名雜誌全催也分別開設了專欄,用來討論大數據帶來的挑戰和重要性。在過去的幾年中,幾乎所有主要的工業公司,其中包括EMC、甲骨文(Oracle)、IBM、微軟、谷歌、亞馬遜和Facebook等,都開始發展自己的大數據項目。隨著大數據產業的蓬勃發展,數據已經成為可以與物質資產和人力資本相提並論的重要的生產要素,創造著巨大的社會和經濟價值。在我國政府發布的殃宙狼永“十二五”規劃中,
信息處理技術作為四項關鍵技術創新工程之一被不斷提出,其中包括了海量數據存儲、數據挖掘、圖像視頻智慧型分析,這些都是大數據的重要組成部分。而另外三項關鍵技術創新工程,包括信息感知技術、信息傳輸技術、信息安全技術,也都與大數據密切相關。在科技部發布的《“十二五”國家科技計畫信息技術領域2013年度備選項目徵集指南》中的“先進計算”板塊已明確提出,重點發展“面向大數據的先進存儲結構及關鍵技術”。在“十二五”收官之際,本書通過“基礎、進階、實戰、套用”四個篇章共十五個章節,全面總結了過去五年中在大數據領域湧現的關鍵技術和典型套用,回顧大數據在我國從概念走向實踐的發展歷程,激勵更多人才參與發展大數據這一國家戰略中來,促進數據資源成為帶動我國經濟成長的新的要素。本書是國內第一本產學研合作,介紹大數據研究熱點和技術難點的圖書,它全方位解讀了該領域的現狀、趨勢及挑戰。本囑台臘書詳細介紹了大數據的生命周期、關鍵技術及套用領域,並突出強調了大數據
整體解決方案的重要性。無論傳統的
數據倉庫技術,還是新興的分散式處理技術等方案都有特定的短板,無法滿足大數據對於基礎設施擴展性,數據處理個性化、多樣性和一體化等方面的需求。因此,本書總結工業界和學術界多年實踐經驗,結合網際網路、開源社區和大數據廠商多年的研員精樂究成果,融入作者對大數據的理解和分析,提出大數據解決方案參考模型,填補大數據領域目前尚未形成完善標準體系這一技術空白。本書內容由筆者多年的研究工作整理而成!在成書的過程中得到
華中科技大學出版社王紅梅編輯的大力支持,在此表示誠摯的感謝。本書在編寫過程中廣泛參考了許多專家、學者的文章、著作以及相關技術文獻。筆者在此一併表示衷心感謝。由於水平有限,書中存在缺點、錯誤在所難免。懇請廣大讀者批評指正。
目錄信息
1大數據背景(8)
1.1大數據時代的到來(8)
1.2大數據定義及特徵(4)
1.3大數據價值(6)
1.4大數據備受關注(7)
1.5大數據帶來的挑戰(8)
2大數據基礎(10)
2.1雲計算(10)
2.1.1雲計算概述(10)
2.1.2雲計算與大數據的聯繫(12)
2.2物聯網(13)
2.2.1物聯網概述(13)
2.2.2物聯網與大數據(14)
2.3數據中心(14)
2.3.1數據中心概述(14)
2.3.2數據中心與大數據(15)
3大數據的生成和採集(19)
3.1大數據生成(19)
3.1.1企業內部數據(19)
3.1.2物聯網數據(20)
3.1.3網際網路數據(21)
3.1.4生物醫療數據(21)
3.1.5其他科學數據(22)
3.2大數據採集(22)
3.2.1數據收集(23)
3.2.2數據傳輸(25)
3.2.3數據預處理(26)
4大數據存儲(28)
4.1海量存儲系統(28)
4.3大數據存儲機制(31)
4.3.1資料庫技術(32)
4.3.2資料庫編程模型(36)
5大數據分析(39)
5.1傳統數據分析方法(39)
5.2大數據分析方法(40)
5.3大數據分析架構(42)
5.4大數據挖掘和分析軟體(43)
大數據浪潮——大數據整體解決方案及關鍵技術探索目錄6大數據整體解決方案(47)
6.1大數據解決方案方法論(47)
6.1.1大數據解決方案參考模型(48)
6.1.2大數據解決方案分類(49)
6.2大數據硬體平台(50)
6.2.1可擴展性設計(51)
6.2.2可定製性設計(52)
6.3大數據軟體系統(55)
6.3.2發戒判籃行版增強功能、企業套用最佳化和增值服務(56)
6.3.3基於記憶體計算的大數據處理系統(60)
6.4大數據典型處理流程(63)
6.5大數據一體化解決方案比較(67)
7.1.1I/O操作中的數據檢查(73)
7.1.2數據的壓縮(76)
7.1.3數據的I/O中序列化操作(78)
7.2Hadoop檔案系統(87)
7.3HDFS體系結構(89)
7.3.1HDFS的特點和局限(89)
7.3.2HDFS相關概念(90)
7.3.3HDFS架構(91)
7.4 HDFS檔案結構(94)
7.4.1NameNode的檔案結構(94)
7.4.2編輯日誌(edit log)及檔案系統映像(filesystem image)(95)
7.4.3Secondary NameNode的目錄結構(96)
7.4.4DataNode的目錄結構(97)
7.5HDFS讀/寫數據流(98)
7.5.1檔案的讀取(98)
7.5.2檔案的寫入(99)
7.6HDFS命令詳解(102)
7.6.1通過distcp進行並行複製(102)
7.6.2HDFS平衡(103)
7.6.3其他命令(103)
8並行編程模型MapReduce(108)
8.1MapReduce體系結構(108)
8.1.1MapReduce基本模型(108)
8.1.2MapReduce作業執行流程(108)
8.2MapReduce關鍵流程詳解(110)
8.2.1partiton過程(110)
8.2.2combine過程(111)
8.2.3shuffle過程(112)
8.3MapReduce高級套用(114)
8.3.1二次排序(114)
8.3.2全排序(119)
8.3.3分散式快取(121)
8.3.4MapReduce 小檔案處理與檔案壓縮(123)
8.3.5MapReduce負載均衡(125)
9NoSQL資料庫HBase(128)
9.1HBase體系結構(128)
9.2RowKey的設計與數據訪問(132)
9.3過濾器(135)
9.3.1比較過濾器(137)
9.3.2專用過濾器(137)
9.3.3附加過濾器(139)
9.3.4FilterList(139)
9.3.5自定義過濾器(140)
9.4HBase多維數據訪問(142)
9.4.1通過Filter實現(142)
9.4.2通過設計RowKey實現(143)
9.5協處理器Coprocessor(143)
9.5.1Coprocessor類(144)
9.5.2協處理器的載入(144)
9.5.3觀察者(146)
9.5.4終端(150)
9.6二級索引(154)
9.6.1全局索引(global index)(154)
9.6.2本地索引(local index)(155)
10互動式查詢語言Hive(157)
10.1Hive體系結構(157)
10.1.1Hive客戶端(159)
10.1.2Metastore(159)
10.2Hive數據類型(160)
10.2.1基本類型(161)
10.2.2複雜類型(161)
10.3Hive存儲方式和壓縮類型(162)
10.3.1託管表和外部表(162)
10.3.2存儲方式(163)
10.4Hive關鍵技術(164)
10.4.1HiveQL簡介(164)
10.4.2Hive表的創建(165)
10.4.3Hive表的數據載入(166)
10.4.4Hive表的查詢(167)
10.4.5Hive表的更改(170)
10.4.6Hive表的刪除(171)
10.4.7Hive表的分區(171)
10.4.8Hive表的分桶(173)
10.5Hive最佳化技術(175)
10.5.1Join最佳化(175)
10.5.2數據傾斜最佳化(176)
10.5.3Map和Reduce個數控制(177)
11資源管理和調度框架——YARN(180)
11.1MRv1架構面臨的問題(180)
11.2YARN架構(181)
11.2.1YARN整體架構(181)
11.2.2RM組件的作用(183)
11.2.3AM組件的作用(184)
11.2.4NM組件的作用(185)
11.2.5運行在YARN上的計算框架(186)
11.2.6在YARN上定製計算框架(187)
11.3YARN管理後台簡介(188)
11.4YARN資源調度(192)
12記憶體計算引擎Spark(197)
12.1Spark簡介(197)
12.2Spark整體架構(198)
12.3Spark核心概念(199)
12.3.1彈性分散式數據集(199)
12.3.2RDD模型的優點(200)
12.3.3Spark DAG(201)
12.4Spark編程模型(202)
12.4.1Spark初始化(203)
12.4.2RDDs(203)
12.4.3Shared Variables(205)
12.5Spark相關組件(207)
12.6Spark套用實例(208)
12.6.1InMemory Analytics(208)
12.6.2Traffic Modeling(209)
12.6.3Twitter Spam Classification (209)
13大數據套用(213)
13.1大數據套用演化(213)
13.2大數據分析的關鍵領域(214)
13.2.2文本分析(215)
13.2.3Web分析(216)
13.2.4多媒體分析(217)
13.2.5網路分析(218)
13.2.6移動分析(219)
14大數據案例分析(221)
14.1物聯網大數據(221)
14.1.1物聯網大數據的表示(222)
14.1.2物聯網大數據的預處理(223)
14.1.3物聯網大數據的快速處理(224)
14.1.4物聯網大數據的並行分析(226)
14.1.5物聯網大數據處理平台的搭建(227)
14.2其他大數據的典型套用(231)
14.2.1企業級套用(231)
14.2.2社交網路大數據(232)
14.2.3醫療健康(234)
14.2.4群智感知(235)
14.2.5智慧型電網(235)
15總結(237)
15.1大數據的研究熱點及研究方向(237)
15.1.1基礎理論研究(237)
15.1.2關鍵技術研究(238)
15.1.3套用實踐研究(238)
15.1.4數據安全研究(239)
15.2展望(240)
參考文獻(243)
2.1.1雲計算概述(10)
2.1.2雲計算與大數據的聯繫(12)
2.2物聯網(13)
2.2.1物聯網概述(13)
2.2.2物聯網與大數據(14)
2.3數據中心(14)
2.3.1數據中心概述(14)
2.3.2數據中心與大數據(15)
3大數據的生成和採集(19)
3.1大數據生成(19)
3.1.1企業內部數據(19)
3.1.2物聯網數據(20)
3.1.3網際網路數據(21)
3.1.4生物醫療數據(21)
3.1.5其他科學數據(22)
3.2大數據採集(22)
3.2.1數據收集(23)
3.2.2數據傳輸(25)
3.2.3數據預處理(26)
4大數據存儲(28)
4.1海量存儲系統(28)
4.3大數據存儲機制(31)
4.3.1資料庫技術(32)
4.3.2資料庫編程模型(36)
5大數據分析(39)
5.1傳統數據分析方法(39)
5.2大數據分析方法(40)
5.3大數據分析架構(42)
5.4大數據挖掘和分析軟體(43)
大數據浪潮——大數據整體解決方案及關鍵技術探索目錄6大數據整體解決方案(47)
6.1大數據解決方案方法論(47)
6.1.1大數據解決方案參考模型(48)
6.1.2大數據解決方案分類(49)
6.2大數據硬體平台(50)
6.2.1可擴展性設計(51)
6.2.2可定製性設計(52)
6.3大數據軟體系統(55)
6.3.2發行版增強功能、企業套用最佳化和增值服務(56)
6.3.3基於記憶體計算的大數據處理系統(60)
6.4大數據典型處理流程(63)
6.5大數據一體化解決方案比較(67)
7.1.1I/O操作中的數據檢查(73)
7.1.2數據的壓縮(76)
7.1.3數據的I/O中序列化操作(78)
7.2Hadoop檔案系統(87)
7.3HDFS體系結構(89)
7.3.1HDFS的特點和局限(89)
7.3.2HDFS相關概念(90)
7.3.3HDFS架構(91)
7.4 HDFS檔案結構(94)
7.4.1NameNode的檔案結構(94)
7.4.2編輯日誌(edit log)及檔案系統映像(filesystem image)(95)
7.4.3Secondary NameNode的目錄結構(96)
7.4.4DataNode的目錄結構(97)
7.5HDFS讀/寫數據流(98)
7.5.1檔案的讀取(98)
7.5.2檔案的寫入(99)
7.6HDFS命令詳解(102)
7.6.1通過distcp進行並行複製(102)
7.6.2HDFS平衡(103)
7.6.3其他命令(103)
8並行編程模型MapReduce(108)
8.1MapReduce體系結構(108)
8.1.1MapReduce基本模型(108)
8.1.2MapReduce作業執行流程(108)
8.2MapReduce關鍵流程詳解(110)
8.2.1partiton過程(110)
8.2.2combine過程(111)
8.2.3shuffle過程(112)
8.3MapReduce高級套用(114)
8.3.1二次排序(114)
8.3.2全排序(119)
8.3.3分散式快取(121)
8.3.4MapReduce 小檔案處理與檔案壓縮(123)
8.3.5MapReduce負載均衡(125)
9NoSQL資料庫HBase(128)
9.1HBase體系結構(128)
9.2RowKey的設計與數據訪問(132)
9.3過濾器(135)
9.3.1比較過濾器(137)
9.3.2專用過濾器(137)
9.3.3附加過濾器(139)
9.3.4FilterList(139)
9.3.5自定義過濾器(140)
9.4HBase多維數據訪問(142)
9.4.1通過Filter實現(142)
9.4.2通過設計RowKey實現(143)
9.5協處理器Coprocessor(143)
9.5.1Coprocessor類(144)
9.5.2協處理器的載入(144)
9.5.3觀察者(146)
9.5.4終端(150)
9.6二級索引(154)
9.6.1全局索引(global index)(154)
9.6.2本地索引(local index)(155)
10互動式查詢語言Hive(157)
10.1Hive體系結構(157)
10.1.1Hive客戶端(159)
10.1.2Metastore(159)
10.2Hive數據類型(160)
10.2.1基本類型(161)
10.2.2複雜類型(161)
10.3Hive存儲方式和壓縮類型(162)
10.3.1託管表和外部表(162)
10.3.2存儲方式(163)
10.4Hive關鍵技術(164)
10.4.1HiveQL簡介(164)
10.4.2Hive表的創建(165)
10.4.3Hive表的數據載入(166)
10.4.4Hive表的查詢(167)
10.4.5Hive表的更改(170)
10.4.6Hive表的刪除(171)
10.4.7Hive表的分區(171)
10.4.8Hive表的分桶(173)
10.5Hive最佳化技術(175)
10.5.1Join最佳化(175)
10.5.2數據傾斜最佳化(176)
10.5.3Map和Reduce個數控制(177)
11資源管理和調度框架——YARN(180)
11.1MRv1架構面臨的問題(180)
11.2YARN架構(181)
11.2.1YARN整體架構(181)
11.2.2RM組件的作用(183)
11.2.3AM組件的作用(184)
11.2.4NM組件的作用(185)
11.2.5運行在YARN上的計算框架(186)
11.2.6在YARN上定製計算框架(187)
11.3YARN管理後台簡介(188)
11.4YARN資源調度(192)
12記憶體計算引擎Spark(197)
12.1Spark簡介(197)
12.2Spark整體架構(198)
12.3Spark核心概念(199)
12.3.1彈性分散式數據集(199)
12.3.2RDD模型的優點(200)
12.3.3Spark DAG(201)
12.4Spark編程模型(202)
12.4.1Spark初始化(203)
12.4.2RDDs(203)
12.4.3Shared Variables(205)
12.5Spark相關組件(207)
12.6Spark套用實例(208)
12.6.1InMemory Analytics(208)
12.6.2Traffic Modeling(209)
12.6.3Twitter Spam Classification (209)
13大數據套用(213)
13.1大數據套用演化(213)
13.2大數據分析的關鍵領域(214)
13.2.2文本分析(215)
13.2.3Web分析(216)
13.2.4多媒體分析(217)
13.2.5網路分析(218)
13.2.6移動分析(219)
14大數據案例分析(221)
14.1物聯網大數據(221)
14.1.1物聯網大數據的表示(222)
14.1.2物聯網大數據的預處理(223)
14.1.3物聯網大數據的快速處理(224)
14.1.4物聯網大數據的並行分析(226)
14.1.5物聯網大數據處理平台的搭建(227)
14.2其他大數據的典型套用(231)