大數據技術原理與應用
大數據技術原理與應用 |
《大數據技術原理與應用》是2015年8月1日人民郵電出版社出版的圖書, 作者是林子雨。
該書主要緊緊圍繞「構建知識體系、闡明基本原理、引導初級實踐、了解相關應用」的指導思想,對大數據知識體系進行系統梳理,做到「有序組織、去粗取精、由淺入深、漸次展開」。
目錄
目錄
內容簡介
前言
作者簡介
圖書目錄
內容簡介
大數據作為繼雲計算、物聯網之後IT行業又一顛覆性的技術,備受關注。大數據處不在,包括金融、汽車、零售、餐飲、電信、能源、政務、醫療、體育、娛樂等在內的社會各行各業,都融入了大數據的印跡,大數據對人類的社會生產和生活必將產生重大而深遠的影響。
大數據時代的到來,迫切需要高校及時建立大數據技術課程體系,為社會培養和輸送一大批具備大數據專業素養的高級人才,滿足社會對大數據人才日益旺盛的需求。本書定位為大數據技術入門教材,為讀者搭建起通向「大數據知識空間」的橋樑和紐帶。本書將系統梳理總結大數據相關技術,介紹大數據技術的基本原理和大數據主要應用,幫助讀者形成對大數據知識體系及其應用領域的輪廓性認識,為讀者在大數據領域「深耕細作」奠定基礎、指明方向。在本書的基礎上,感興趣的讀者可以通過其他諸如《Hadoop權威指南》等工具書,繼續深入學習和實踐大數據相關技術。
前言
本書共分四大部分,包括大數據基礎篇、大數據存儲篇、大數據處理與分析篇和大數據應用篇。
在大數據基礎篇中,第一章介紹大數據的基本概念和應用領域,並闡述大數據、雲計算和物聯網的相互關係;第二章介紹大數據處理架構Hadoop,由於Hadoop已經成為應用最為廣泛的大數據技術,因此,本書的大數據相關技術主要圍繞Hadoop展開,包括Hadoop MapReduce、HDFS和HBase,因此,該章是後面其他章節(第三、四、七章)內容的基礎。在大數據存儲篇中,用五個章節(第三、四、五、六章)的內容,分別介紹了大數據存儲相關技術的概念與原理,包括分布式文件系統HDFS、分布式數據庫HBase、NoSQL數據庫和雲數據庫。在大數據處理與分析篇,首先在第七章介紹了大數據處理和分析的核心技術——分布式並行編程模型MapReduce,然後,在第八章和第九章分別介紹了大數據時代兩種新興的數據分析技術——流計算和圖計算,最後在第十章簡單介紹了可視化技術。在大數據應用篇,用三章(第十一、十二、十三)內容介紹了大數據在互聯網、生物醫學和物流等各個領域的典型應用。
本書面向高校計算機專業和信息管理等相關專業的學生,可以作為專業必修課或選修課教材。在教學過程中,建議安排32個授課學時,16個教學周,每周2學時,每個章節的具體學時分配如下:第一、二、五、六、八、十、十一每個章節安排2個學時;第三、四、九章每個章節安排4個學時;第七章安排6個學時;第十二、十三章這兩章內容由學生自學完成。
本書由林子雨執筆。在撰寫過程中,廈門大學計算機科學系碩士研究生劉穎傑、葉林寶、蔡珉星、李雨倩、謝榮東、羅道文以及本科生黃梓銘、李粲等同學做了大量輔助性工作,在此,向這些同學的辛勤工作表示衷心的感謝。
本書官方網站,提供教學PPT和相關資料下載,並接受錯誤反饋和發布教材勘誤信息。
本書在撰寫過程中,我參考了大量國內外教材、專著、論文和資料,對大數據知識進行了系統梳理,有選擇性地把一些重要知識納入本書。本書也是我多年在數據科學領域從事教學、科研、產業方面工作的系統總結。但是,本人才疏學淺,難免有許多不足之處,望學術同仁不吝賜教。
廈門大學計算機科學係數據庫實驗室
林子雨
2015年3月,於廈門
作者簡介
林子雨,男,1978年出生,博士,現為廈門大學計算機科學系副教授,曾任廈門大學信息科學與技術學院院長助理、晉江市發展和改革局副局長。現為中國計算機學會數據庫專業委員會委員,中國計算機學會信息系統專業委員會委員,廈門市計算機學會理事。中國高校首個「數字教師」提出者和建設者,廈門大學數據庫實驗室負責人,廈門大學雲計算與大數據研究中心主要建設者和骨幹成員。在數據庫、數據倉庫、數據挖掘、大數據、雲計算和物聯網等領域有着十多年的知識積累,對各個領域知識都有比較深入的了解,有比較寬泛的視野,將相關大數據知識綜合成一本適合本科和研究生教學的教材。
於2001年獲得福州大學水利水電專業學士學位,2005年獲得廈門大學計算機專業碩士學位,2009年獲得北京大學計算機專業博士學位。主要研究方向為數據庫、數據倉庫、數據挖掘、大數據、雲計算和物聯網,並以第一作者身份在《軟件學報》《計算機學報》和《計算機研究與發展》等國家重點期刊以及國際學術會議上發表多篇學術論文。
作為項目負責人主持的科研項目包括1項國家自然科學青年基金項目(No.61303004)、1項福建省自然科學青年基金項目(No.2013J05099)和1項中央高校基本科研業務費項目(No.2011121049)。
圖書目錄
第一篇大數據基礎
第1章大數據概述
1.1大數據時代
1.1.1第三次信息化浪潮
1.1.2信息科技為大數據時代
提供技術支撐
1.1.3數據產生方式的變革促成
大數據時代的來臨
1.1.4大數據的發展歷程
1.2大數據的概念
1.2.1數據量大
1.2.2數據類型繁多
1.2.3處理速度快
1.2.4價值密度低
1.3大數據的影響
1.3.1大數據對科學研究的影響
1.3.2大數據對思維方式的影響
1.3.3大數據對社會發展的影響
1.3.4大數據對就業市場的影響
1.3.5大數據對人才培養的影響
1.4大數據的應用
1.5大數據關鍵技術
1.6大數據計算模式
1.6.1批處理計算
1.6.2流計算
1.6.3圖計算
1.6.4查詢分析計算
1.7大數據產業
1.8大數據與雲計算、物聯網
1.8.1雲計算
1.8.2物聯網
1.8.3大數據與雲計算、物聯網的關係
1.9本章小結
1.10習題
第2章大數據處理架構Hadoop
2.1概述
2.1.1Hadoop簡介
2.1.2Hadoop的發展簡史
2.1.3Hadoop的特性
2.1.4Hadoop的應用現狀
2.2Hadoop的項目結構
2.2.1Common
2.2.2Avro
2.2.3HDFS
2.2.4HBase
2.2.5MapReduce
2.2.6Zookeeper
2.2.7Hive
2.2.8Pig
2.2.9Sqoop
2.2.10Chukwa
2.3Hadoop的安裝與使用
2.3.1創建Hadoop用戶
2.3.2Java的安裝
2.3.3SSH登錄權限設置
2.3.4安裝單機Hadoop
2.3.5Hadoop偽分布式安裝
2.4本章小結
2.5習題
第二篇大數據存儲
第3章Hadoop分布式文件系統
3.1分布式文件系統
3.1.1計算機集群結構
3.1.2分布式文件系統的結構
3.1.3分布式文件系統的設計需求
3.2HDFS簡介
3.3HDFS的相關概念
3.3.1塊
3.3.2名稱節點和數據節點
3.4HDFS體系結構
3.4.1概述
3.4.2HDFS命名空間管理
3.4.3通信協議
3.4.4客戶端
3.4.5HDFS體系結構的局限性
3.5HDFS的存儲原理
3.5.1冗餘數據的保存
3.5.2數據存取策略
3.5.3數據錯誤與恢復
3.6HDFS的數據讀寫過程
3.6.1讀數據的過程
3.6.2寫數據的過程
3.7HDFS編程實踐
3.7.1HDFS常用命令
3.7.2HDFS的Web界面
3.7.3HDFS常用JavaAPI及應用實例
3.8本章小結
3.9習題
第4章分布式數據庫HBase
4.1概述
4.1.1從BigTable說起
4.1.2HBase簡介
4.1.3HBase與傳統關係數據庫的
對比分析
4.2HBase訪問接口
4.3HBase數據模型
4.3.1數據模型概述
4.3.2數據模型的相關概念
4.3.3數據坐標
4.3.4概念視圖
4.3.5物理視圖
4.3.6面向列的存儲
4.4HBase的實現原理
4.4.1HBase的功能組件
4.4.2表和Region
4.4.3Region的定位
4.5HBase運行機制
4.5.1HBase系統架構
4.5.2Region服務器的工作原理
4.5.3Store的工作原理
4.5.4HLog的工作原理
4.6HBase編程實踐
4.6.1HBase常用的Shell命令
4.6.2HBase常用的JavaAPI及
應用實例
4.7本章小結
4.8習題
第5章NoSQL數據庫
5.1NoSQL簡介
5.2NoSQL興起的原因
5.2.1關係數據庫法滿足Web2.0的
需求
5.2.2關係數據庫的關鍵特性在Web2.
時代成為"雞肋"
5.3NoSQL與關係數據庫的比較
5.4NoSQL的四大類型
5.4.1鍵值數據庫
5.4.2列族數據庫
5.4.3文檔數據庫
5.4.4圖形數據庫
5.5NoSQL的三大基石
5.5.1CAP
5.5.2BASE
5.5.3最終一致性
5.6從NoSQL到NewSQL數據庫
5.7本章小結
5.8習題
第6章雲數據庫
6.1雲數據庫概述
6.1.1雲計算是雲數據庫興起的
基礎
6.1.2雲數據庫的概念
6.1.3雲數據庫的特性
6.1.4雲數據庫是個性化數據存儲
需求的理想選擇
6.1.5雲數據庫與其他數據庫的關係
6.2雲數據庫產品
6.2.1雲數據庫廠商概述
6.2.2Amazon的雲數據庫產品
6.2.3Google的雲數據庫產品
6.2.4微軟的雲數據庫產品
6.2.5其他雲數據庫產品
6.3雲數據庫系統架構
6.3.1UMP系統概述
6.3.2UMP系統架構
6.3.3UMP系統功能
6.4雲數據庫實踐
6.4.1阿里雲RDS簡介
6.4.2RDS中的概念
6.4.3購買和使用RDS數據庫
6.4.4將本地數據庫遷移到雲端RDS數據庫
6.5本章小結
6.6習題
第三篇大數據處理與分析
第7章MapReduce
7.1概述
7.1.1分布式並行編程
7.1.2MapReduce模型簡介
7.1.3Map和Reduce函數
7.2MapReduce的工作流程
7.2.1工作流程概述
7.2.2MapReduce的各個執行階段
7.2.3Shuffle過程詳解
7.3實例分析:WordCount
7.3.1WordCount的程序任務
7.3.2WordCount的設計思路
7.3.3MapReduce的具體執行過程
7.3.4一個WordCount執行過程的
實例
7.4MapReduce的具體應用
7.4.1MapReduce在關係代數
運算中的應用
7.4.2分組與聚合運算
7.4.3矩陣-向量乘法
7.4.4矩陣乘法
7.5MapReduce編程實踐
7.5.1任務要求
7.5.2編寫Map處理邏輯
7.5.3編寫Reduce處理邏輯
7.5.4編寫main方法
7.5.5編譯打包代碼以及運行程序
7.6本章小結
7.7習題
第8章流計算
8.1流計算概述
8.1.1靜態數據和流數據
8.1.2批量計算和實時計算
8.1.3流計算的概念
8.1.4流計算與Hadoop
8.1.5流計算框架
8.2流計算的處理流程
8.2.1概述
8.2.2數據實時採集
8.2.3數據實時計算
8.2.4實時查詢服務
8.3流計算的應用
8.3.1應用場景1:實時分析
8.3.2應用場景2:實時交通
8.4開源流計算框架Storm
8.4.1Storm簡介