本書(shū)基于云計(jì)算和大數(shù)據(jù),介紹大數(shù)據(jù)處理和分析的技術(shù),分為兩部分。第一部分介紹Hadoop基礎(chǔ)知識(shí),內(nèi)容包括:Hadoop的介紹和集群構(gòu)建、Hadoop的分部式系統(tǒng)架構(gòu)、MapReduce及其應(yīng)用、Hadoop的版本特征及進(jìn)化。第二部分以云計(jì)算為主題,詳細(xì)論述利用Hadoop的大數(shù)據(jù)分析和處理工具,以及NoSQL技術(shù),內(nèi)容包括:云計(jì)算和Hadoop、*服務(wù)中的MapReduce應(yīng)用、Hadoop應(yīng)用下的大數(shù)據(jù)分析、NoSQL、HBase。本書(shū)不單純地講述理論和概念,而是基于目具體的工具和技術(shù)(Hadoop和NoSQL),利用大量實(shí)際案例,通過(guò)實(shí)際的操作和應(yīng)用來(lái)組織大數(shù)據(jù)處理和分析技術(shù),有利于讀者從工程應(yīng)用的角度進(jìn)行實(shí)際掌握和利用。適合相關(guān)專業(yè)的本科生、研究生和軟件工程師學(xué)習(xí)。
魏祖寬,男,電子科技大學(xué)教授,博士,韓國(guó)科技協(xié)會(huì)、中國(guó)計(jì)算機(jī)學(xué)會(huì)、日本電子電器協(xié)會(huì)會(huì)員。承擔(dān)計(jì)算機(jī)以及軟件學(xué)院的本科和研究生的數(shù)據(jù)庫(kù)課程教學(xué)和實(shí)驗(yàn)教學(xué),及云計(jì)算和大數(shù)據(jù)方面的新課。主持?jǐn)?shù)據(jù)庫(kù)應(yīng)用、GIS應(yīng)用等方面的應(yīng)用課題10多項(xiàng)(國(guó)家自然基金委,省/市級(jí)科技局等科研項(xiàng)目,以及企業(yè)橫向項(xiàng)目),現(xiàn)專注于云存儲(chǔ)方面的應(yīng)用科研項(xiàng)目。
目 錄
第1章 Hadoop的介紹和集群構(gòu)建 2
1.1 Hadoop介紹 2
1.1.1 云計(jì)算和Hadoop 2
1.1.2 Hadoop的歷史 4
1.2 Hadoop構(gòu)建案例 6
1.2.1 歐美構(gòu)建案例 6
1.2.2 韓國(guó)構(gòu)建案例 7
1.3 構(gòu)建Hadoop集群 8
1.3.1 分布式文件系統(tǒng) 8
1.3.2 構(gòu)建Hadoop集群的準(zhǔn)備事項(xiàng) 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è)計(jì) 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ù)的復(fù)制和過(guò)程 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ù)的價(jià)值創(chuàng)造 69
3.2 MapReduce 71
3.2.1 MapReduce 示例:詞頻統(tǒng)計(jì)(Word Count) 71
3.2.2 MapReduce開(kāi)源代碼:詞頻統(tǒng)計(jì)(Word Count)――Java基礎(chǔ) 75
3.2.3 MapReduce 開(kāi)源代碼:詞頻統(tǒng)計(jì)(Word Count)――Ruby語(yǔ)言基礎(chǔ) 76
3.3 MapReduce的結(jié)構(gòu) 78
3.3.1 通過(guò)案例了解MapReduce結(jié)構(gòu) 79
3.3.2 從結(jié)構(gòu)性角度進(jìn)行的MapReduce最優(yōu)化方案 81
3.4 MapReduce的容錯(cuò)性(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:通過(guò)MapReduce的案例介紹 90
3.6.1 單詞頻率統(tǒng)計(jì)MapReduce的編程 91
3.6.2 MapReduce―用戶界面 95
3.7 總結(jié) 99
第4章 Hadoop版本特征及進(jìn)化 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 跨時(shí)代MapReduce框架:YARN 128
4.5 總結(jié) 135
第5章 云計(jì)算和Hadoop 137
5.1 大規(guī)模Hadoop集群的構(gòu)建和案例 138
5.2 云基礎(chǔ)設(shè)施服務(wù)的登場(chǎng) 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前需要了解的事項(xiàng) 165
6.1.6 Amazon EMR的實(shí)戰(zhàn)運(yùn)用 170
6.2 總結(jié) 178
第7章 Hadoop應(yīng)用下的大數(shù)據(jù)分析 179
7.1 Hadoop應(yīng)用下的機(jī)器學(xué)習(xí)(Mahout) 180
7.1.1 設(shè)置及編譯 181
7.1.2 K-means 聚類算法 183
7.1.3 基于矢量相似度的協(xié)同過(guò)濾 188
7.1.4 小結(jié) 194
7.2 基于Hadoop的統(tǒng)計(jì)分析Rhive(R and Hive) 195
7.2.1 R的設(shè)置及靈活運(yùn)用 195
7.2.2 Hive的設(shè)置及靈活運(yùn)用 198
7.2.3 RHive的設(shè)置及靈活運(yùn)用 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ù)的登場(chǎng) 218
8.1.2 基于大數(shù)據(jù)的NoSQL的登場(chǎng) 221
8.1.3 適合大數(shù)據(jù)和Web 2.0的數(shù)據(jù)庫(kù)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ù)庫(kù)模式 255
9.5 HBase構(gòu)造 259
9.6 HBase的構(gòu)建及運(yùn)行 261
9.7 HBase的擴(kuò)展――DuoBase中的HBase 264
9.8 HBase的用戶定義索引 266
9.8.1 HBase用戶定義索引―HFile格式的擴(kuò)展 267
9.8.2 HBase用戶定義索引―Region的擴(kuò)展 267
9.9 總結(jié) 270