本書基于云計算和大數(shù)據(jù),介紹大數(shù)據(jù)處理和分析的技術(shù),分為兩部分。第一部分介紹Hadoop基礎(chǔ)知識,內(nèi)容包括:Hadoop的介紹和集群構(gòu)建、Hadoop的分部式系統(tǒng)架構(gòu)、MapReduce及其應(yīng)用、Hadoop的版本特征及進化。第二部分以云計算為主題,詳細論述利用Hadoop的大數(shù)據(jù)分析和處理工具,以及NoSQL技術(shù),內(nèi)容包括:云計算和Hadoop、*服務(wù)中的MapReduce應(yīng)用、Hadoop應(yīng)用下的大數(shù)據(jù)分析、NoSQL、HBase。本書不單純地講述理論和概念,而是基于目具體的工具和技術(shù)(Hadoop和NoSQL),利用大量實際案例,通過實際的操作和應(yīng)用來組織大數(shù)據(jù)處理和分析技術(shù),有利于讀者從工程應(yīng)用的角度進行實際掌握和利用。適合相關(guān)專業(yè)的本科生、研究生和軟件工程師學習。
魏祖寬,男,電子科技大學教授,博士,韓國科技協(xié)會、中國計算機學會、日本電子電器協(xié)會會員。承擔計算機以及軟件學院的本科和研究生的數(shù)據(jù)庫課程教學和實驗教學,及云計算和大數(shù)據(jù)方面的新課。主持數(shù)據(jù)庫應(yīng)用、GIS應(yīng)用等方面的應(yīng)用課題10多項(國家自然基金委,省/市級科技局等科研項目,以及企業(yè)橫向項目),現(xiàn)專注于云存儲方面的應(yīng)用科研項目。
目 錄
第1章 Hadoop的介紹和集群構(gòu)建 2
1.1 Hadoop介紹 2
1.1.1 云計算和Hadoop 2
1.1.2 Hadoop的歷史 4
1.2 Hadoop構(gòu)建案例 6
1.2.1 歐美構(gòu)建案例 6
1.2.2 韓國構(gòu)建案例 7
1.3 構(gòu)建Hadoop集群 8
1.3.1 分布式文件系統(tǒng) 8
1.3.2 構(gòu)建Hadoop集群的準備事項 12
1.3.3 構(gòu)建偽分布式 17
1.3.4 分布式集群(Cluster)構(gòu)建 29
1.4 Hadoop界面 36
1.4.1 Hadoop分布式文件系統(tǒng)指令界面 36
1.5 總結(jié) 40
第2章 Hadoop分布式處理文件系統(tǒng) 41
2.1 Hadoop分布式文件系統(tǒng)的設(shè)計 42
2.2 概觀Hadoop分布式文件系統(tǒng)的整體構(gòu)造 43
2.3 Namenode的角色 44
2.3.1 元數(shù)據(jù)管理 44
2.3.2 元數(shù)據(jù)的安全保管――Edits和Fslmage文件及Secondary Namenode 49
2.3.3 Datanode管理 52
2.4 Datanode的角色 59
2.4.1 block管理 59
2.4.2 數(shù)據(jù)的復制和過程 61
2.4.3 Datanode添加 63
2.5 總結(jié) 65
第3章 大數(shù)據(jù)和MapReduce 67
3.1 大數(shù)據(jù)的概要 68
3.1.1 大數(shù)據(jù)的概念 69
3.1.2 大數(shù)據(jù)的價值創(chuàng)造 69
3.2 MapReduce 71
3.2.1 MapReduce 示例:詞頻統(tǒng)計(Word Count) 71
3.2.2 MapReduce開源代碼:詞頻統(tǒng)計(Word Count)――Java基礎(chǔ) 75
3.2.3 MapReduce 開源代碼:詞頻統(tǒng)計(Word Count)――Ruby語言基礎(chǔ) 76
3.3 MapReduce的結(jié)構(gòu) 78
3.3.1 通過案例了解MapReduce結(jié)構(gòu) 79
3.3.2 從結(jié)構(gòu)性角度進行的MapReduce最優(yōu)化方案 81
3.4 MapReduce的容錯性(Fault Tolerance) 85
3.5 MapReduce的編程 86
3.5.1 搜索 86
3.5.2 排序 87
3.5.3 倒排索引 87
3.5.4 查找熱門詞 88
3.5.5 合算數(shù)字 89
3.6 構(gòu)建Hadoop:通過MapReduce的案例介紹 90
3.6.1 單詞頻率統(tǒng)計MapReduce的編程 91
3.6.2 MapReduce―用戶界面 95
3.7 總結(jié) 99
第4章 Hadoop版本特征及進化 101
4.1 Hadoop 0.1x版本的API 103
4.2 Hadoop附加功能(append) 107
4.3 Hadoop安全相關(guān)功能 109
4.4 Hadoop 2.0.0 alpha 111
4.4.1 安裝Hadoop 2.0.0 112
4.4.2 Hadoop分布式文件系統(tǒng)的更改 120
4.4.3 跨時代MapReduce框架:YARN 128
4.5 總結(jié) 135
第5章 云計算和Hadoop 137
5.1 大規(guī)模Hadoop集群的構(gòu)建和案例 138
5.2 云基礎(chǔ)設(shè)施服務(wù)的登場 139
5.2.1 Amazon云服務(wù) 141
5.3 在Amazon EC2中構(gòu)建Hadoop集群 156
5.3.1 Apache Whirr 156
5.3.2 構(gòu)建Hadoop 集群 157
5.4 總結(jié) 160
第6章 Amazon Elastic MapReduce的倍增利用 161
6.1 Amazon EMR的活用 162
6.1.1 Amazon EMR的概念 162
6.1.2 Amazon EMR的構(gòu)造 162
6.1.3 Amazon EMR的特征 163
6.1.4 Amazon EMR的 Job Flow和Step 164
6.1.5 使用Amazon EMR前需要了解的事項 165
6.1.6 Amazon EMR的實戰(zhàn)運用 170
6.2 總結(jié) 178
第7章 Hadoop應(yīng)用下的大數(shù)據(jù)分析 179
7.1 Hadoop應(yīng)用下的機器學習(Mahout) 180
7.1.1 設(shè)置及編譯 181
7.1.2 K-means 聚類算法 183
7.1.3 基于矢量相似度的協(xié)同過濾 188
7.1.4 小結(jié) 194
7.2 基于Hadoop的統(tǒng)計分析Rhive(R and Hive) 195
7.2.1 R的設(shè)置及靈活運用 195
7.2.2 Hive的設(shè)置及靈活運用 198
7.2.3 RHive的設(shè)置及靈活運用 201
7.2.4 小結(jié) 207
7.3 利用Hadoop的圖形數(shù)據(jù)處理Giraph 207
7.4 總結(jié) 216
第8章 數(shù)據(jù)中的DBMS,NoSQL 217
8.1 NoSQL出現(xiàn)背景:大數(shù)據(jù)和Web 2.0 218
8.1.1 基于Web 2.0的大數(shù)據(jù)的登場 218
8.1.2 基于大數(shù)據(jù)的NoSQL的登場 221
8.1.3 適合大數(shù)據(jù)和Web 2.0的數(shù)據(jù)庫NoSQL 222
8.2 NoSQL的定義和類別特征 226
8.3 NoSQL數(shù)據(jù)模型概要和分類 229
8.4 NoSQL數(shù)據(jù)模型化 231
8.4.1 NoSQL數(shù)據(jù)模型化基本概念 232
8.4.2 一般的NoSQL建模方法 234
8.5 主要NoSQL的比較和選擇 239
8.6 總結(jié) 241
第9章 Hbase:Hadoop中的NoSQL 243
9.1 Hadoop生態(tài)界中的HBase 244
9.2 HBase介紹 248
9.3 HBase數(shù)據(jù)模型 250
9.3.1 map 250
9.3.2 持續(xù)性(persistent) 250
9.3.3 分布性(distributed) 250
9.3.4 排序性(sorted) 250
9.3.5 多維性(multidimensional) 251
9.3.6 稀疏性(sparse) 254
9.4 HBase的數(shù)據(jù)庫模式 255
9.5 HBase構(gòu)造 259
9.6 HBase的構(gòu)建及運行 261
9.7 HBase的擴展――DuoBase中的HBase 264
9.8 HBase的用戶定義索引 266
9.8.1 HBase用戶定義索引―HFile格式的擴展 267
9.8.2 HBase用戶定義索引―Region的擴展 267
9.9 總結(jié) 270