第1章 云計算與大數據概述 1
1.1 云計算和大數據的概念 2
1.1.1 云計算概述 2
1.1.2 云計算的特點和優勢 3
1.1.3 大數據概述 7
1.1.4 大數據的特點與作用 9
1.2 云計算與大數據發展現狀 11
1.2.1 國外云計算發展現狀 11
1.2.2 我國云計算發展現狀 13
1.2.3 國外大數據發展現狀 16
1.2.4 我國大數據發展現狀 17
1.3 云計算的分類 18
1.3.1 私有云、公有云和混合云 18
1.3.2 IaaS、PaaS、SaaS、DaaS 19
1.4 主流云計算和大數據供應商 21
1.4.1 Amazon云計算 21
1.4.2 IBM云計算 21
1.4.3 Google云計算 22
1.4.4 微軟云計算 22
1.4.5 阿里巴巴云服務 22
1.4.6 百度開放云 23
1.4.7 騰訊云平臺 24
1.5 云計算與大數據的關系 26
本章小結 27
本章練習 28
第2章 云計算技術 29
2.1 虛擬化技術 30
2.1.1 虛擬化技術發展史 30
2.1.2 虛擬化技術的概念 31
2.1.3 虛擬化的技術實現 32
2.1.4 虛擬化的應用領域 35
2.2 分布式技術 42
2.2.1 分布式文件系統 43
2.2.2 分布式數據庫系統 46
2.2.3 分布式計算 47
本章小結 47
本章練習 48
第3章 云計算平臺 49
3.1 Google云平臺 50
3.1.1 Google云計算平臺體系結構 50
3.1.2 Google云計算平臺核心技術 51
3.1.3 Google App Engine 55
3.2 Amazon云平臺 56
3.2.1 存儲架構Dynamo 57
3.2.2 彈性計算云(EC2) 57
3.2.3 簡單存儲服務(S3) 59
3.2.4 簡單隊列服務(SQS) 60
3.2.5 其他AWS(Amazon Web Services) 61
3.3 微軟Windows Azure平臺 62
3.3.1 平臺定位 62
3.3.2 計算服務 63
3.3.3 數據存儲服務 64
3.3.4 其他服務 65
3.4 阿里云服務平臺 65
3.4.1 計算服務 65
3.4.2 數據存儲服務 66
3.4.3 數據分析服務 66
3.4.4 其他服務 67
3.5 百度開發者云服務 67
3.5.1 計算服務 67
3.5.2 數據存儲服務 68
3.5.3 數據分析服務 68
3.5.4 其他服務 68
3.6 騰訊云服務平臺 69
3.6.1 計算服務 69
3.6.2 數據存儲服務 70
3.6.3 數據分析服務 70
3.6.4 其他服務 71
本章小結 71
本章練習 72
第4章 大數據技術 73
4.1 大數據應用系統架構 74
4.1.1 大數據應用系統架構原則 74
4.1.2 Apache大數據應用系統架構模型 74
4.1.3 企業大數據應用系統架構模型 77
4.2 大數據關鍵技術 79
4.2.1 數據收集技術 79
4.2.2 數據預處理技術 79
4.2.3 數據存儲技術 79
4.2.4 數據處理技術 81
4.2.5 數據挖掘技術 82
4.2.6 數據分析與數據可視化技術 90
4.2.7 大數據安全 95
4.3 主流大數據服務 98
4.3.1 Google的技術與產品研發 98
4.3.2 微軟的HDInsight 99
4.3.3 IBM的InfoSphere 99
4.4 開源大數據平臺 99
4.4.1 Hadoop系統架構 100
4.4.2 Storm流計算系統 100
4.4.3 Spark迭代計算框架 101
4.4.4 其他產品 101
本章小結 101
本章練習 102
第5章 Hadoop開發平臺 103
5.1 Hadoop的發展史 104
5.2 Hadoop的功能與作用 105
5.3 Hadoop的基本組成 107
5.3.1 HDFS(Hadoop分布式
文件系統) 107
5.3.2 MapReduce(分布式計算框架) 117
5.3.3 YARN(集群資源管理器) 117
5.3.4 ZooKeeper(分布式協作服務) 120
5.3.5 HBase(分布式NoSQL數據庫) 122
5.3.6 Hive(數據庫管理工具) 122
5.3.7 Pig(高層次抽象腳本語言) 122
5.3.8 Avro 123
5.3.9 Sqoop 123
本章小結 123
本章練習 124
第6章 MapReduce應用 125
6.1 分布式并行編程:編程方式的變革 126
6.2 MapReduce模型概述 126
6.3 工作組件 127
6.4 MapReduce工作流程 129
6.4.1 工作流程概述 129
6.4.2 MapReduce各個執行階段 130
6.4.3 Shuffle過程詳解 134
6.5 并行計算的實現 138
6.5.1 數據分布存儲 138
6.5.2 分布式并行計算 138
6.5.3 本地計算 139
6.5.4 任務粒度 140
6.5.5 Partition 140
6.5.6 Combine 140
6.5.7 Reduce任務 140
6.6 實例分析:WordCount 140
6.6.1 設計思路 141
6.6.2 程序源代碼 142
6.6.3 程序解讀 144
6.6.4 使用Hadoop運行程序 147
6.7 MapReduce新框架YARN 149
6.7.1 原Hadoop MapReduce
框架的問題 149
6.7.2 Hadoop YARN框架的原理及
運作機制 151
6.7.3 新舊Hadoop MapReduce
框架對比 152
本章小結 153
本章練習 154
第7章 Pig簡介 155
7.1 Pig概述 156
7.2 Pig的用途 156
7.3 Pig的設計思想 156
7.4 Pig的運行模式 157
7.5 Pig Latin 159
7.5.1 基礎知識 159
7.5.2 讀寫和檢測操作符 160
7.5.3 數據類型和schema 162
7.5.4 表達式和函數 163
7.5.5 關系型運算符 165
7.5.6 執行優化 170
7.5.7 用戶定義函數 171
7.6 Pig腳本 174
7.6.1 注釋 174
7.6.2 參數替換 174
本章小結 175
本章練習 176
第8章 HBase簡介 177
8.1 HBase的概念和作用 178
8.2 HBase使用場景和成功案例 178
8.2.1 互聯網搜索功能 179
8.2.2 抓取增量數據 180
8.2.3 內容服務 181
8.2.4 信息交換 182
8.3 HBase和傳統關系型數據庫的
對比分析 183
8.4 HBase數據模型 184
8.4.1 數據模型的相關概念 184
8.4.2 概念視圖 185
8.4.3 物理視圖 186
8.4.4 物理存儲 186
8.5 HBase組成架構 187
8.5.1 HRegion 189
8.5.2 HMaster 189
8.5.3 ZooKeeper 190
8.6 HBase的安裝和運行 190
8.6.1 安裝HBase 190
8.6.2 運行HBase 193
8.6.3 HBase Shell 194
8.7 HBase的訪問接口 197
8.7.1 HBase Java API介紹 197
8.7.2 HBase Java API程序示例 202
本章小結 211
本章練習 212
第9章 云計算與大數據安全 213
9.1 云計算安全 214
9.1.1 云計算面臨的安全威脅 214
9.1.2 云計算安全相關解決方案 216
9.2 大數據安全 217
9.2.1 大數據面臨的安全問題 218
9.2.2 不同領域的大數據安全需求 218
9.2.3 大數據安全問題解決方案 220
本章小結 221
本章練習 221