本書全面介紹了云計算與大數據的基礎知識、主要技術、基于集群技術的資源整合型云計算技術和基于虛擬化技術的資源切分型云計算技術。全書共10章,主要內容包括云計算與大數據概述、相關技術、虛擬化技術、集群系統基礎、MPI、Hadoop、HPCC、Storm、數據中心技術和云計算大數據仿真技術。本書注重實用,實驗豐富,將實驗內容融合在課程內容中,使理論緊密聯系實際。
本書可作為高等院校云計算、大數據相關課程的教材,也可作為相關技術人員的參考用書。
目 錄
第1章 云計算與大數據基礎 1
1.1 云計算技術概述 1
1.1.1 云計算簡介 1
1.1.2 云計算的特點 2
1.1.3 云計算技術分類 3
1.2 大數據技術概述 5 目 錄
第1章 云計算與大數據基礎 1
1.1 云計算技術概述 1
1.1.1 云計算簡介 1
1.1.2 云計算的特點 2
1.1.3 云計算技術分類 3
1.2 大數據技術概述 5
1.2.1 大數據簡介 5
1.2.2 主要的大數據處理系統 8
1.2.3 大數據處理的基本流程 10
1.3 云計算與大數據的發展 11
練習題 17
第2章 云計算與大數據的相關技術 19
2.1 云計算與大數據 19
2.2 云計算與物聯網 21
2.3 一致性哈希算法 24
2.3.1 一致性哈希算法的基本原理 24
2.3.2 一致性哈希算法中計算和存儲位置的一致性 25
2.4 非關系型數據庫 27
2.4.1 從關系型數據庫到非關系型數據庫 27
2.4.2 非關系型數據庫的定義 28
2.4.3 非關系型數據庫的分類 28
2.5 集群高速通信標準InfiniBand 29
2.6 云計算大數據集群的自組織特性 30
練習題 32
第3章 虛擬化技術 33
3.1 虛擬化技術簡介 33
3.1.1 虛擬化技術的發展 33
3.1.2 虛擬化的描述 34
3.1.3 虛擬化技術的優勢和劣勢 35
3.1.4 虛擬化技術的分類 36
3.2 常見虛擬化軟件 39
3.2.1 VirtualBox 39
3.2.2 VMware Workstation 39
3.2.3 KVM 39
3.3 系統虛擬化 40
3.3.1 服務器虛擬化 41
3.3.2 桌面虛擬化 43
3.3.3 網絡虛擬化 45
3.4 使用KVM構建虛擬機群 46
練習題 48
第4章 集群系統基礎 49
4.1 集群系統的基本概念 49
4.2 集群系統的分類 51
4.3 單一系統映射 52
4.4 Beowulf集群 53
4.5 集群文件系統 55
4.5.1 集群文件系統概念 55
4.5.2 典型的集群文件系統Lustre 56
4.6 分布式系統中計算和數據的協作機制 58
4.6.1 基于計算切分的分布式計算 58
4.6.2 基于計算和數據切分的混合型分布式計算技術——網格計算 60
4.6.3 基于數據切分的分布式計算技術 61
4.6.4 三種分布式系統的分析對比 63
練習題 65
第5章 MPI——面向計算的高性能集群技術 66
5.1 什么是MPI 66
5.2 MPI的架構和特點 67
5.3 MPICH并行環境的建立 68
5.3.1 配置前的準備工作 68
5.3.2 掛載NFS 68
5.3.3 配置ssh實現MPI節點間用戶的無密碼訪問 69
5.3.4 安裝MPICH2 70
5.3.5 建立并行計算環境時的注意事項 72
5.4 MPI分布式程序設計基礎 72
5.4.1 最簡單的并行程序 73
5.4.2 獲取進程標志和機器名 76
5.4.3 有消息傳遞功能的并行程序 78
5.4.4 Monte Carlo法在并行程序設計中的應用 82
5.4.5 并行計算中節點間的Reduce操作 84
5.4.6 用MPI的6個基本函數實現Reduce函數功能 87
5.4.7 設計MPI并行程序時的注意事項 89
練習題 90
第6章 Hadoop——分布式大數據系統 91
6.1 Hadoop概述 91
6.2 HDFS 92
6.2.1 HDFS文件系統的原型GFS 92
6.2.2 HDFS文件的基本結構 94
6.2.3 HDFS的存儲過程 95
6.3 MapReduce編程框架 96
6.3.1 MapReduce的發展歷史 96
6.3.2 MapReduce的基本工作過程 96
6.3.3 LISP中的MapReduce 99
6.3.4 MapReduce的特點 100
6.4 實現Map/Reduce的C語言實例 101
6.5 建立Hadoop開發環境 104
6.5.1 相關準備工作 105
6.5.2 JDK的安裝配置 105
6.5.3 下載、解壓Hadoop,配置Hadoop環境變量 106
6.5.4 修改Hadoop配置文件 107
6.5.5 將配置好的Hadoop文件復制到其他節點 108
6.5.6 啟動、停止Hadoop 108
6.5.7 在Hadoop系統上運行測試程序WordCount 109
練習題 111
第7章 HPCC——面向數據的高性能計算集群系統 112
7.1 HPCC簡介 113
7.2 HPCC的系統架構 115
7.3 HPCC平臺數據檢索任務的執行過程 117
7.4 HPCC的安裝部署 118
7.5 數據的加載、切分和分發 123
7.6 ECL語言基礎知識 126
7.6.1 ECL語言的保留關鍵字 127
7.6.2 ECL語言的記錄定義和操作 128
7.6.3 ECL語言集成開發環境 129
7.7 ECL語言編程實例 130
7.7.1 聲明數據文件中的記錄結構 130
7.7.2 讀取數據文件生成數據集 131
7.7.3 統計記錄條數 131
7.7.4 將數據集中的小寫字母改為大寫 132
7.7.5 建立索引實現對數據集的檢索 133
7.7.6 發布數據 135
7.7.7 HPCC中的WordCount操作 137
練習題 139
第8章 Storm——基于拓撲的流數據實時計算系統 141
8.1 Storm簡介 141
8.2 Storm原理及其體系結構 142
8.2.1 Storm編程模型原理 142
8.2.2 Storm體系結構 143
8.3 搭建Storm開發環境 144
8.3.1 Storm的安裝步驟 144
8.3.2 Storm 的設置 146
8.3.3 Storm 的啟動 147
8.4 Storm使用實例 148
8.4.1 使用Maven管理storm-starter 148
8.4.2 WordCountTopology實例分析 150
練習題 154
第9章 服務器與數據中心 155
9.1 數據中心的發展歷史 155
9.2 數據中心的基本單元——服務器 159
9.3 數據中心選址 161
9.4 數據中心的能耗 161
練習題 163
第10章 云計算大數據仿真技術 164
10.1 用參數定義物理設備進行仿真 164
10.2 云計算仿真系統——CloudSim 165
10.2.1 CloudSim基礎 165
10.2.2 CloudSim體系結構 167
10.2.3 CloudSim的使用模型場景 169
10.2.4 CloudSim使用實例 170
10.3 云計算系統相空間模型 176
練習題 178
參考文獻 179