本書是從大數據和云計算相結合的視角,系統地介紹大數據云架構技術與實踐的專業圖書,全書分為五篇19章,分別介紹大數據云計算的概論、關鍵技術、體系架構、云架構實踐與編程和安全。本書層次清晰,結構合理,主要內容包括大數據云計算關系、大數據應用價值、分布式計算、NoSQL數據庫、機器學習、虛擬化、Docker容器、Web 2.0、綠色數據中心、基礎設計即服務(IaaS)、平臺即服務(PaaS)、軟件即服務(SaaS)、容器即服務(CaaS)、大數據云架構搭建、Spark大數據編程、大數據和云計算面臨的安全威脅、保障大數據安全、應用大數據保障安全等。
本書可作為高年級本科生和研究生教材,也可作為廣大科學技術人員和計算機愛好者的參考書。
作者著眼于大數據和云計算有機結合的視角,從理論探索和應用實踐兩個方面來撰寫本書,適合對大數據和云計算具有初步認識并希望對大數據云架構進行深入、全面了解,并進行關實踐的計算機信息相關專業高年級本科生使用,同時本書也將成為廣大專業工程技術人員不可缺少的參考資料。
前言
移動互聯網、電子商務及社交媒體的快速發展使得人類需要面臨的數據量呈指數增長。根據IDC《數字宇宙》(Digital Universe)研究報告顯示,2020年全球新建和復制的信息量將超過40ZB,是當前的10倍;而中國的數據量則會在2020年超過8ZB,比當前增長20倍。數據量的飛速增長帶來了大數據技術的發展和服務市場的繁榮,同時在學術界,關于大數據的科研工作如火如荼,越來越多的學者投入到大數據云計算研究之中,相關文獻呈指數增長。不斷積累的大數據包含著很多在小數據量時不具備的深度知識和價值,帶來巨大的技術創新與商業機遇。大數據分析挖掘將為行業/企業帶來巨大的商業價值,實現各種高附加值的增值服務,進一步提升行業/企業的經濟效益和社會效益。談到大數據,不可避免地要提及云計算,云計算結合大數據,這是時代發展的必然趨勢。有人把云計算和大數據比作是一個硬幣的兩面。云計算是大數據的IT基礎和平臺,而大數據是云計算范疇內最重要、最關鍵的應用。大數據必然架構在云上才能高效運作并對外服務,兩者之間缺一不可,相輔相成,相互促進。大數據云計算正在快速發展,相關技術熱點也呈現百花齊放的局面,業界各大廠商紛紛制定相應的戰略,新的概念、觀點和產品不斷涌現。大數據和云計算作為新一代IT技術變革的核心,必將成為廣大學生、科技工作者構建自身IT核心競爭能力的戰略機遇。因而作為高層次IT人才,學習大數據和云計算知識,掌握相關技術迫在眉睫。然而,大數據和云計算密切相關,當前國內外相關的資料還相當少,缺乏比較系統完整的論述。目前在我國急需要一本教材能夠全面而又系統地講解大數據和云計算,普及大數據和云計算知識,推廣云計算中大數據的應用,解決大數據架構的實際問題,進而培養高層次大數據人才。在這樣的背景下,作者著眼于大數據和云計算有機結合的視角,從理論探索和應用實踐兩個方面來撰寫本書,適合對大數據和云計算具有初步認識并希望對大數據云架構進行深入、全面了解,并進行實踐的計算機信息相關專業高年級本科生使用,同時本書也將成為廣大專業工程技術人員不可缺少的參考資料。本書分為5篇19章,第1~第3章為大數據云計算概論篇,第4~第10章為大數據云計算關鍵技術篇,第11~第14章為云計算架構篇,第15和第16章為大數據云架構實踐與編程篇,第17~第19章為大數據安全篇。各章內容如下:第1章大數據概述,介紹大數據產生背景,大數據發展歷程,大數據概念和特點,大數據應用場景,大數據研究展望等內容。第2章大數據和云計算,介紹大數據和云計算的關系,云計算的概念,云計算的由來,云計算類型,云計算的商業模式。第3章大數據應用價值,介紹大數據的應用價值,數據的生成、分析、存儲、分享、檢索、消費都在大數據的生態系統中進行,應用大數據技術,讓數據參與決策,發掘找到大數據真正有效的價值,進而改變人們的未來,革新生活模式,產生社會變革。第4章分布式計算框架,介紹構成大數據云計算的主要關鍵技術分布式計算技術,以及Hadoop、Spark、Flink等分布式大數據計算框架。第5章NoSQL數據庫,介紹NoSQL(NoSQL = Not Only SQL),這是一項全新的數據庫技術,然后引出分布式數據庫的重要理論CAP,最后介紹HBase。第6章機器學習,介紹機器學習的概念、分類和發展歷程,簡要介紹多種機器學習算法。第7章虛擬化,介紹構成云計算的主要關鍵技術虛擬技術,它整合多種計算資源,實現架構動態化,并達到集中管理和動態使用物理資源及虛擬資源,以提高系統結構的彈性和靈活性,降低成本、改進服務、減少管理風險等目標。第8章Docker容器,介紹Docker容器相關的概念、優勢、由來和實現原理。第9章Web 2.0,介紹構成云計算主要的關鍵技術Web 2.0,是因特網的一次理念和思想體系的升級換代,由原來自上而下的由少數資源控制者集中控制主導的因特網體系轉變為自下而上的由廣大用戶集體智慧和力量主導的因特網體系。第10章綠色數據中心,介紹構成云計算的主要關鍵技術綠色數據中心,是指數據機房中的IT系統、機械、照明和電氣等能取得最大化的能源效率和最小化的環境影響。第11章基礎設施即服務,介紹云計算環境中的IaaS(Infrastructure as a Service),分析Amazon公司的IaaS案例。第12章平臺即服務,介紹云計算環境中的PaaS(Platform as a Service),分析Google App Engine和Windows Azure Platform的PaaS案例。第13章軟件即服務,介紹云計算環境中的SaaS(Software as a Service),分析Salesforce的SaaS案例。第14章容器即服務,介紹云計算環境中的CaaS(Container as a Service),闡述Kubernetes和Mesos容器調度框架,分析互聯網公司SAE容器云和互聯網公司去哪網容器云。第15章大數據云架構搭建,介紹分布式的Hadoop與Spark集群搭建和基于Docker容器的Spark大數據云架構。第16章Spark大數據編程,介紹使用Intellij IDEA構建Spark開發環境,并列舉應用Spark計算框架的WordCount和基于Spark Streaming股票趨勢預測案例。第17章大數據云計算面臨的安全威脅,介紹大數據云計算面臨的各種安全威脅,闡述不同行業大數據安全的需求,指出大數據安全應該包括保障大數據安全和大數據用于安全兩個層面的含義。第18章保障大數據安全,介紹保障大數據安全的相關技術和相關實踐。第19章應用大數據保障安全,介紹應用大數據保障安全,包括大數據安全檢測及應用,安全大數據,基于大數據的網絡態勢感知和視頻監控數據的安全應用等方面內容。在本書最后給出了相關的參考文獻,有興趣的讀者可以進一步閱讀。此外,關于虛擬化技術,作者認為普通虛擬化和容器虛擬化是完全不同的兩種技術,大數據云平臺多采用容器架構,所以Docker容器技術作為本書獨立一章,并且在第4篇詳細介紹基于Docker容器的大數據云架構實踐。在方興未艾的大數據云計算時代,統一的標準和解決方案還未成形,不同人在不同背景下的需求和觀點是不一樣的,我們花費一年多的時間努力編著本書,希望能提供比較深入的見解,每一個對大數據和云計算感興趣的讀者都能學有所得。更進一步,大數據和云計算是新一代IT技術變革的核心,是中國建立自己IT體系的戰略機遇,閱讀本書,期待讀者既能從宏觀角度更全面地認識大數據云架構,同時也能從微觀技術實踐角度接觸大數據和云計算,更深入地學習和掌握大數據和云計算知識。本書適合于從頭至尾閱讀,也可以按照喜好和關注點挑選獨立的章節閱讀。希望本書的介紹能加深讀者對云計算的理解。由于編者水平有限,書中不妥之處在所難免,懇請讀者批評指正。編者2016年5月
目錄
第1篇大數據云計算概論
第1章大數據概述
1.1大數據產生與發展
1.1.1大數據產生背景
1.1.2大數據發展歷程
1.1.3當前大數據
1.2大數據概念與特征
1.2.1大數據概念
1.2.2大數據的特點
1.3大數據應用
1.3.1企業內部大數據應用
1.3.2物聯網大數據應用
1.3.3面向在線社交網絡大數據的應用
1.3.4醫療健康大數據應用
1.3.5群智感知
1.3.6智能電網
1.4大數據的研究與展望
1.5本章小結
第2章大數據和云計算
2.1大數據和云計算的關系
2.1.1大數據和云計算關系概述
2.1.2云計算是大數據處理的基礎
2.1.3大數據是云計算的延伸
2.2云計算概念
2.2.1云的興起
2.2.2云計算的定義及其特點
2.2.3云計算名稱的來歷
2.3云計算類型
2.3.1基礎設施類
2.3.2平臺類
2.3.3應用類
2.3.4以所有權劃分云計算系統類型
2.4云計算商業模式
2.4.1商業模式是云計算的基石
2.4.2云計算的市場規模
2.4.3云計算商業模式分析
2.5本章小結
第3章大數據應用價值
3.1大數據在電子商務中的應用
3.1.1大數據是電子商務發展要素
3.1.2電子商務大數據的實用措施
3.1.3電子商務大數據的轉型路徑
3.2大數據在金融的應用
3.2.1大數據金融的提出
3.2.2大數據金融的功能
3.2.3大數據金融的挑戰
3.2.4大數據金融創新
3.3大數據在媒體的應用
3.3.1傳統媒體的不足
3.3.2大數據驅動傳統媒體的升級
3.3.3大數據引領新媒體發展
3.4大數據在醫療上的應用
3.4.1大數據改進臨床決策支持系統
3.4.2大數據助推醫療產品研發
3.4.3大數據催生新醫療服務模式
3.5大數據在教育上的應用
3.5.1大數據教育與傳統教育的優勢
3.5.2大數據教學模式的不斷改善
3.5.3教育大數據市場的廣闊前景
3.5.4大數據變革教育應用的實踐措施
3.6本章小結
第2篇大數據云計算關鍵技術
第4章分布式計算框架
4.1分布式計算基本概念
4.1.1分布式計算與并行計算
4.1.2分布式計算和并行計算的比較
4.2Hadoop系統介紹
4.2.1Hadoop發展歷程
4.2.2Hadoop使用場景和特點
4.2.3Hadoop項目組成
4.3分布式文件系統
4.3.1分布式文件系統概述
4.3.2HDFS架構
4.3.3HDFS設計特點
4.4MapReduce計算模型
4.4.1MapReduce概述
4.4.2MapReduce應用實例
4.4.3MapReduce實現和架構
4.5分布式協同控制
4.5.1常見分布式并發控制方法
4.5.2Google Chubby并發鎖
4.6Spark計算框架
4.6.1Spark簡介
4.6.2Spark生態系統
4.7Flink計算框架
4.7.1Flink簡介
4.7.2Flink中的調度簡述
4.7.3Flink的生態圈
4.8本章小結
第5章NoSQL數據庫
5.1NoSQL數據庫概述
5.1.1NoSQL數據庫的4大分類
5.1.2數據庫系統CAP理論和BASE理論
5.1.3NoSQL的共同特征
5.2Hbase數據庫
5.2.1HBase簡介
5.2.2HBase訪問接口
5.2.3HBase數據模型
5.2.4MapReduce on HBase
5.2.5HBase系統架構
5.3本章小結
第6章機器學習
6.1機器學習概述
6.1.1機器學習分類
6.1.2機器學習發展歷程
6.2機器學習常用的算法
6.2.1回歸算法
6.2.2基于實例的算法
6.2.3正則化方法
6.2.4決策樹算法
6.2.5貝葉斯方法
6.2.6基于核的算法
6.2.7聚類算法
6.2.8關聯規則學習
6.2.9遺傳算法
6.2.10人工神經網絡
6.2.11深度學習
6.2.12降低維度算法
6.2.13集成算法
6.3本章小結
第7章虛擬化
7.1虛擬化概述
7.1.1虛擬化發展歷史
7.1.2虛擬化技術的發展熱點和趨勢
7.1.3虛擬化技術的概念
7.2虛擬化的分類
7.2.1從實現的層次劃分
7.2.2從應用的領域劃分
7.3應用虛擬化
7.3.1應用虛擬化的使用特點
7.3.2應用虛擬化的優勢
7.3.3應用虛擬化要考慮的問題
7.4桌面虛擬化
7.4.1桌面虛擬化優勢
7.4.2桌面虛擬化使用條件
7.5服務器虛擬化
7.5.1服務器虛擬化架構
7.5.2CPU虛擬化
7.5.3內存虛擬化
7.5.4I/O虛擬化
7.6網絡虛擬化
7.6.1傳統網絡虛擬化技術
7.6.2主機網絡虛擬化
7.6.3網絡設備虛擬化
7.7存儲虛擬化
7.7.1存儲虛擬化概述
7.7.2按照不同層次劃分存儲虛擬化
7.7.3按照實現方式不同劃分存儲虛擬化
7.8本章小結
第8章Docker容器
8.1Docker容器概述
8.1.1Docker容器的由來
8.1.2Docker定義
8.1.3Docker的優勢
8.2Docker的原理
8.2.1Linux
Namespace(ns)
8.2.2Control
Groups(cgroups)
8.2.3Linux容器(LXC)
8.2.4AUFS
8.2.5Grsec
8.3Docker技術發展與應用
8.3.1Docker解決的問題
8.3.2Docker的未來發展
8.3.3Docker技術的局限
8.4本章小結
第9章Web 2.0
9.1Web 2.0產生背景和定義
9.1.1Web 2.0產生背景
9.1.2Web 2.0的概念
9.1.3Web 2.0和Web 1.0比較
9.1.4Web 2.0特征
9.2Web 2.0應用產品
9.2.1Web 2.0主要應用產品
9.2.2主要產品的區別
9.3Web 2.0相關技術
9.3.1Web 2.0的設計模式
9.3.2Web標準
9.3.3向Web標準過渡
9.4本章小結
第10章綠色數據中心
10.1綠色數據中心概述
10.1.1云數據中心發展階段
10.1.2綠色數據中心架構
10.1.3云數據中心需要整合的資源
10.2數據中心管理和維護
10.2.1實現端到端、大容量、可視化的基礎設施整合
10.2.2實現虛擬化、自動化的管理
10.2.3實現面向業務的應用管理和流量分析
10.3本章小結
第3篇云計算架構
第11章基礎設施即服務
11.1IaaS概述
11.1.1IaaS的定義
11.1.2IaaS提供服務的方法
11.1.3IaaS云的特征
11.1.4IaaS和虛擬化的關系
11.2IaaS技術架構
11.2.1資源層
11.2.2虛擬化層
11.2.3管理層
11.2.4服務層
11.3IaaS云計算管理
11.3.1自動化部署
11.3.2彈性能力提供技術
11.3.3資源監控
11.3.4資源調度
11.3.5業務管理和計費度量
11.4Amazon云計算案例
11.4.1概述
11.4.2Amazon S3
11.4.3Amazon
Simple DB
11.4.4Amazon RDS
11.4.5Amazon SQS
11.4.6Amazon EC2
11.5本章小結
第12章平臺即服務
12.1PaaS概述
12.1.1PaaS的由來
12.1.2PaaS的概念
12.1.3PaaS模式的開發
12.1.4PaaS推進SaaS時代
12.2PaaS架構
12.2.1PaaS的功能
12.2.2多租戶彈性是PaaS的核心特性
12.2.3PaaS架構的核心意義
12.2.4PaaS改變未來軟件開發和維護模式
12.3Google的云計算平臺
12.3.1設計理念
12.3.2構成部分
12.3.3App Engine服務
12.4Windows Azure平臺
12.4.1Windows
Azure操作系統
12.4.2SQL Azure
12.4.3.NET服務
12.4.4Live服務
12.4.5Windows
Azure Platform的用途
12.5本章小結
第13章軟件即服務
13.1SaaS概述
13.1.1SaaS的由來
13.1.2SaaS的概念
13.1.3SaaS與傳統軟件的區別
13.1.4SaaS模式應用于信息化優勢
13.1.5SaaS成熟度模型
13.2模式及實現
13.2.1SaaS商務模式
13.2.2SaaS平臺架構
13.2.3SaaS服務平臺的主要功能
13.2.4SaaS服務平臺關鍵技術
13.3Salesforce云計算案例
13.3.1Salesforce云計算產品組成
13.3.2Salesforce云計算特點
13.4本章小結
第14章容器即服務
14.1容器云服務
14.1.1云平臺架構層次
14.1.2容器云
14.1.3容器云的特點
14.2Kubernetes應用部署
14.2.1Kubernetes架構
14.2.2Kubernetes模型
14.2.3內部使用者的服務發現
14.2.4外部訪問Service
14.3Mesos應用
14.3.1Mesos體系結構和工作流
14.3.2Mesos流程
14.3.3Mesos資源分配
14.3.4Mesos優勢
14.4基于Kubernetes打造SAE容器云
14.4.1Kubernetes 的好處
14.4.2容器云網絡
14.4.3容器云存儲
14.5基于Mesos去哪兒網容器云
14.5.1背景
14.5.2應用Mesos構建容器云
14.5.3云環境構建
14.6本章小結
第4篇大數據云架構實踐與編程
第15章大數據云架構搭建
15.1分布式Hadoop與Spark集群搭建
15.1.1Hadoop集群構建
15.1.2Spark集群構建
15.2基于Docker大數據云架構
15.2.1簡介
15.2.2Docker和Weave搭建
15.2.3Hadoop集群鏡像搭建
15.2.4集群部署與啟動
15.2.5基于Ambari管理平臺的鏡像搭建
15.2.6桌面系統XFCE搭建
15.3本章小結
第16章Spark大數據編程
16.1Spark應用開發環境配置
16.1.1使用Intellij開發Spark程序
16.1.2使用Spark Shell開發運行Spark程序
16.2Spark大數據編程
16.2.1WordCount
16.2.2股票趨勢預測
16.3本章小結
第5篇大數據安全
第17章大數據云計算面臨的安全威脅
17.1大數據云計算的安全問題
17.1.1大數據基礎設施安全威脅
17.1.2大數據存儲安全威脅
17.1.3大數據云架構網絡安全威脅
17.1.4大數據帶來隱私問題
17.1.5針對大數據的高級持續性攻擊
17.1.6其他安全威脅
17.2不同領域大數據的安全需求
17.2.1因特網行業
17.2.2電信行業
17.2.3金融行業
17.2.4醫療行業
17.2.5政府組織
17.3大數據安全內涵
17.3.1保障大數據安全
17.3.2大數據用于安全領域
17.4大數據安全研究方向
17.4.1大數據安全保障技術
17.4.2大數據安全應用技術
17.5本章小結
第18章保障大數據安全
18.1大數據安全的關鍵技術
18.1.1非關系數據庫安全策略
18.1.2防范APT攻擊
18.2大數據安全保障實踐
18.2.1大數據采集與存儲的安全防護
18.2.2大數據挖掘與應用的安全防護
18.2.3大數據安全審計
18.2.4大數據安全評估與安全管理
18.2.5數據中心的安全保障
18.3本章小結
第19章應用大數據保障安全
19.1大數據安全檢測及應用
19.1.1安全檢測與大數據的融合
19.1.2用戶上網流量數據的挖掘與分析
19.2安全大數據
19.2.1數據挖掘方法
19.2.2挖掘目標及評估
19.3基于大數據的網絡態勢感知
19.3.1態勢感知定義
19.3.2網絡態勢感知
19.3.3基于流量數據的網絡安全感知
19.3.4基于大數據分析的網絡優化
19.3.5網絡安全感知應用實踐
19.4視頻監控數據的安全應用
19.4.1視頻監控數據的處理需求
19.4.2視頻監控數據挖掘技術
19.4.3海量視頻監控數據的分析與處理
19.5本章小結
參考文獻