“大數據技術與應用”是一門大數據知識入門課程,是數據科學與大數據技術、計算機科學與技術、軟件工程等專業的重要前沿理論課程,對于信息類專業的學生掌握大數據相關理論知識并與企業工程實踐接軌具有十分重要的作用。本書共包含9章,第1章為初識大數據,第2章為大數據采集,第3章為大數據預處理,第4章為大數據存儲,第5章為大數據計算,第6章為大數據挖掘,第7章為大數據安全,第8章為大數據可視化,第9章為大數據應用案例。本書以大數據生命周期為主線,通過理論學習+應用案例,使學生參與到大數據實際處理、分析中來,有利于學生深入理解大數據技術、綜合應用大數據技術和面向產業實踐大數據技術。本書可作為本科院校相關專業課程的教材,也可供相關技術人員參考。
趙亮,博士,大連理工大學控制科學與工程學院副教授,碩士生導師。從事工業互聯網、智能控制及建筑能源系統信息化等方面的研究,IEC國際標委會委員,遼寧省優秀博士學位論文獲得者,英國Staffordshire University訪問學者。負責國家自然科學基金項目1項、國家工信部綠色制造系統集成項目1項、遼寧省科技創新重大專項項目1項,負責企業委托開發項目多項,參與國家863重點項目、國家科技支撐項目1項、國家自然科學基金項目等多項,獲日內瓦國際發明金獎1項、遼寧省科技進步三等獎1項,獲得專利2項,軟件著作權登記5項,發表論文50余篇。
第1章 初識大數據 1
1.1 大數據的概述 1
1.1.1 大數據時代的背景及定義 1
1.1.2 大數據的特征 3
1.1.3 大數據的數據類型 4
1.2 大數據的發展 6
1.2.1 大數據概念的發展 6
1.2.2 大數據技術的發展 8
1.3 大數據的關鍵技術 9
1.3.1 大數據采集 9
1.3.2 大數據預處理 10
1.3.3 大數據存儲 10
1.3.4 大數據計算 12
1.3.5 大數據挖掘 13
1.3.6 大數據安全 14
1.3.7 大數據可視化 16
1.4 大數據的應用案例 17
1.4.1 大數據在金融領域中的應用 17
1.4.2 大數據在醫療領域中的應用 17
1.4.3 大數據在交通領域中的應用 18
1.4.4 大數據在土地資源領域中的應用 19
1.4.5 大數據的其他應用 19
1.5 大數據面臨的挑戰 20
1.5.1 數據隱私和安全 20
1.5.2 數據存儲和處理 20
1.5.3 數據共享機制 20
1.5.4 價值挖掘問題 21
1.5.5 其他挑戰 21
1.6 大數據的發展趨勢 22
思考題 24
第2章 大數據采集 25
2.1 大數據采集的基礎 25
2.1.1 傳統數據采集 25
2.1.2 大數據采集的概述 26
2.2 大數據采集的架構 27
2.2.1 Scribe 28
2.2.2 Chukwa 29
2.2.3 Kafka 30
2.2.4 Flume 35
2.3 互聯網數據抓取與處理技術 37
2.3.1 App端數據采集 38
2.3.2 網絡爬蟲 39
2.3.3 常用的網絡爬蟲方法 43
2.3.4 文本數據處理 48
思考題 56
第3章 大數據預處理 57
3.1 數據基礎的概念 57
3.1.1 數據對象與屬性類型 57
3.1.2 數據的統計描述 58
3.1.3 數據相似性和相異性的度量方法 62
3.2 數據預處理的概述 65
3.2.1 數據質量 66
3.2.2 主要任務 66
3.3 數據清洗 67
3.3.1 缺失值處理 67
3.3.2 光滑噪聲數據處理 68
3.3.3 檢測偏差與糾正偏差 70
3.4 數據集成 70
3.4.1 模式識別和對象匹配 71
3.4.2 冗余問題 71
3.4.3 元組重復 73
3.4.4 數據值沖突的檢測與處理 73
3.5 數據規約 74
3.5.1 離散小波變換 74
3.5.2 主成分分析 75
3.5.3 屬性子集選擇 75
3.5.4 回歸和對數線性模型 76
3.5.5 直方圖 77
3.5.6 聚類 78
3.5.7 抽樣 78
3.5.8 數據立方體聚集 79
3.6 數據轉換 80
3.6.1 通過規范化變換數據 81
3.6.2 通過離散化變換數據 82
3.6.3 標稱數據的概念分層變換 83
思考題 84
第4章 大數據存儲 85
4.1 HDFS 85
4.1.1 HDFS的概述 85
4.1.2 HDFS的相關概念 88
4.1.3 HDFS的體系結構 91
4.1.4 HDFS的存儲原理 93
4.1.5 HDFS的數據讀/寫過程 96
4.2 分布式數據庫HBase 98
4.2.1 概述 98
4.2.2 HBase訪問接口 100
4.2.3 HBase列族數據模型 101
4.2.4 HBase的實現 106
4.2.5 HBase的運行機制 110
4.3 NoSQL 114
4.3.1 NoSQL的簡介 114
4.3.2 NoSQL的三大基石 118
思考題 122
第5章 大數據計算 123
5.1 批處理計算 123
5.1.1 MapReduce的概述 124
5.1.2 Map和Reduce 124
5.1.3 MapReduce的工作流程 125
5.1.4 MapReduce實例 129
5.2 流計算 133
5.2.1 流計算的概述 133
5.2.2 Storm 134
5.2.3 增量算法 136
5.3 圖計算 137
5.3.1 圖計算的概述 137
5.3.2 Pregel 138
5.4 查詢分析計算 141
5.5 云計算 143
5.5.1 云計算的概述 143
5.5.2 云計算的關鍵技術 144
5.5.3 云計算與大數據 145
5.6 大數據計算平臺 146
5.6.1 Hadoop 146
5.6.2 Spark 154
思考題 160
第6章 大數據挖掘 162
6.1 數據挖掘的基礎 162
6.1.1 數據挖掘的概述 162
6.1.2 數據挖掘的主要任務 164
6.1.3 數據挖掘的對象 168
6.1.4 數據挖掘的工具 168
6.2 聚類分析 171
6.2.1 聚類分析的概述 171
6.2.2 基于劃分的聚類算法 174
6.2.3 基于層次的聚類算法 183
6.2.4 基于密度的聚類算法 190
6.2.5 基于模型的聚類算法 194
6.3 分類分析 195
6.3.1 分類的基礎知識 195
6.3.2 決策樹分類 197
6.3.3 最近鄰分類器 202
6.3.4 貝葉斯分類器 204
6.3.5 支持向量機預測 205
6.3.6 神經網絡預測 214
6.4 回歸分析 220
6.4.1 回歸分析的概述 220
6.4.2 線性回歸模型 221
6.4.3 支持向量回歸模型 223
6.4.4 邏輯回歸模型 225
6.5 關聯分析 227
6.5.1 關聯分析的概述 228
6.5.2 Apriori算法 230
6.5.3 FP增長算法 235