Spark大數(shù)據(jù)處理技術
-
【作 者】主編 劉仁山 周洪翠 莊新妍
【I S B N 】978-7-5226-0485-5
【責任編輯】鞠向超
【適用讀者群】本專通用
【出版時間】2022-02-18
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數(shù)】268
【千字數(shù)】418
【印 張】16.75
【定 價】¥48
【叢 書】普通高等教育數(shù)據(jù)科學與大數(shù)據(jù)技術專業(yè)教材
【備注信息】
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關圖書
本書面向大數(shù)據(jù)技術專業(yè),遵循知識性、系統(tǒng)性、實用性、條理性、連貫性和先進性的原則,力求激發(fā)讀者的興趣,注重各知識點之間的銜接和實踐性環(huán)節(jié)教學,精心組織內容,做到由淺入深、突出重點。
本書共9章,第1章為Spark基礎,主要包括Spark的基礎知識、應用場景和生態(tài)系統(tǒng)等內容;第2章為Scala語言基礎,包括Scala 編程基礎、Scala數(shù)組和集合以及映射、Scala對象和多繼承等內容;第3章為Spark設計與運行原理,包括Spark架構、Spark Core組成、Spark編程模型和計算模型等內容;第4章為Spark環(huán)境搭建和使用,包括Spark系列軟件環(huán)境配置(JDK、Hadoop、MySQL-Server、Hive、ZooKeeper 、Scala、Kafka、Spark)和Spark-shell交互式命令工具使用等內容;第5章為Spark RDD彈性分布式數(shù)據(jù)集,包括RDD創(chuàng)建方式、RDD轉換算子和行動算子操作方法等內容;第6章為Spark SQL結構化數(shù)據(jù)處理引擎,包括DataFrame和DataSet的創(chuàng)建和操作以及利用Spark SQL操作MySQL數(shù)據(jù)源等內容;第7章為Spark Streaming實時流處理引擎,包括Spark Streaming程序開發(fā)、DStream 高級數(shù)據(jù)源使用和數(shù)據(jù)轉換操作等內容;第8章為Spark MLlib機器學習,包括機器學習基礎、Spark MLlib 機器學習庫和常用算法等內容;第9章為訂單交易監(jiān)控系統(tǒng),主要完成訂單交易實時監(jiān)控平臺的搭建,通過綜合案例全面應用Spark大數(shù)據(jù)處理技術中幾乎所有知識點,幫助讀者運用Spark進行大數(shù)據(jù)技術開發(fā)和應用。
本書可作為普通高校或高職院校大數(shù)據(jù)技術課程的教材,也可供大數(shù)據(jù)技術領域從業(yè)者參考學習。
本書配有電子課件、源代碼、課后習題答案、微課視頻等,讀者可以從中國水利水電出版社網(wǎng)站(www.waterpub.com.cn)或萬水書苑網(wǎng)站(www.dgboyong.cn)免費下載。
內容實用——理論與實踐結合,重點突出應用
體系完善——構建完整的大數(shù)據(jù)專業(yè)解決方案
產教融合——高校企業(yè)共參與,對標行業(yè)標準
資源豐富——微課、課件、教案、源碼、答案
隨著大數(shù)據(jù)時代的到來,無論是傳統(tǒng)行業(yè)、互聯(lián)網(wǎng)行業(yè)還是IT行業(yè)都將應用大數(shù)據(jù)技術。大數(shù)據(jù)技術可以幫助企業(yè)進行數(shù)據(jù)整合分析并降低生產成本,比如,互聯(lián)網(wǎng)公司可以在廣告業(yè)務方面進行大數(shù)據(jù)應用分析、效果分析和定向優(yōu)化等,在推薦系統(tǒng)方面能實施大數(shù)據(jù)優(yōu)化排名、熱點分析和日志監(jiān)控等。
Spark是一種基于內存的、分布式的大數(shù)據(jù)處理框架,憑借著快速、簡潔易用以及支持多種運行模式而成為很多企業(yè)的大數(shù)據(jù)分析框架。本書不僅介紹Spark基礎理論和運行原理,還深入淺出地講解與Spark學習相關的編程語言、環(huán)境搭建、編程模型、數(shù)據(jù)處理技術、存儲原理和機器學習等內容,所涉及的技術都結合代碼進行講解并實現(xiàn)具體功能,讀者可以通過實例更加深入地理解Spark的運行機制。
本書內容主要包括Spark基礎、Scala語言基礎、Spark設計與運行原理、Spark環(huán)境搭建和使用、Spark RDD彈性分布式數(shù)據(jù)集、Spark SQL結構化數(shù)據(jù)處理引擎、Spark Streaming實時流處理引擎、Spark MLlib機器學習、訂單交易監(jiān)控系統(tǒng)等,最后通過綜合案例全面應用Spark中幾乎所有知識點,幫助讀者運用Spark進行大數(shù)據(jù)技術開發(fā)和應用。
本書融入了豐富的教學和實際工作經(jīng)驗,內容安排合理、結構組織有序,能夠讓讀者循序漸進地學習,通過精講多個實例激發(fā)讀者學習興趣,圖文并茂、直觀易懂,適合初學者快速學習Spark編程;本書實例豐富,突出該課程操作性強的特點,每章由思維導圖、要點、正文、小結和習題組成,重點內容配有微課視頻講解,課后習題配有答案,便于學生課后鞏固相關知識,并且提供完整源代碼。
本書首先講解理論基礎知識,然后圍繞理論知識點進行編程實踐,最后通過綜合案例結合工作實踐培養(yǎng)分析和解決問題的能力,用貼合實際的應用場景提升編程水平,充分鞏固各個知識點的應用;源代碼全部經(jīng)過測試,能夠在Linux操作系統(tǒng)下編譯和運行。
本書編者均從事大數(shù)據(jù)技術相關課程一線教學,如Spark、Hadoop、Java、Python等,具有豐富的教學經(jīng)驗和較強的實際項目開發(fā)能力,主持或參與多個系統(tǒng)開發(fā)項目,部分教師具有企業(yè)軟件開發(fā)工作經(jīng)歷。
本書由劉仁山、周洪翠、莊新妍任主編,塔娜、腰蘇圖任副主編,主要編寫分工如下:莊新妍編寫第1章和第2章,塔娜編寫第3章和第4章,周洪翠編寫第5章和第6章,劉仁山編寫第7章并負責全書統(tǒng)稿、修改、定稿工作,腰蘇圖編寫第8章和第9章。本書編寫得到了北京華晟經(jīng)世有限公司的大力支持,在此表示感謝。
盡管編者在編寫過程中力求準確、完善,但書中不妥之處在所難免,懇請讀者批評指正。
編 者
2021年9月
第1章 Spark基礎 1
1.1 初識Spark 2
1.1.1 Spark簡介 2
1.1.2 Spark發(fā)展 2
1.2 Spark應用場景 3
1.3 Spark生態(tài)系統(tǒng) 4
1.4 Spark與Hadoop對比 7
1.5 Spark多語言編程 8
本章小結 9
練習一 9
第2章 Scala語言基礎 11
2.1 Scala語言概述 12
2.1.1 Scala語言簡介 12
2.1.2 Scala編譯器安裝 12
2.2 Scala命名規(guī)范 18
2.2.1 基本語法 18
2.2.2 Scala 關鍵字 18
2.2.3 Scala注釋 19
2.3 變量 20
2.3.1 val變量 20
2.3.2 var變量 20
2.4 數(shù)據(jù)類型和運算符 20
2.4.1 數(shù)據(jù)類型 20
2.4.2 運算符 21
2.5 Scala控制結構 23
2.5.1 if...else語句 23
2.5.2 循環(huán)語句 24
2.6 函數(shù)的定義和調用 26
2.6.1 內置函數(shù)和自定義函數(shù) 26
2.6.2 函數(shù)的參數(shù) 27
2.7 Scala的lazy值 29
2.8 異常Exception的處理 30
2.9 數(shù)組 31
2.9.1 定長數(shù)組和變長數(shù)組 31
2.9.2 遍歷數(shù)組 32
2.9.3 數(shù)組轉換 32
2.9.4 數(shù)組常用方法 33
2.10 元組 33
2.10.1 創(chuàng)建元組 33
2.10.2 元組的訪問和遍歷 34
2.10.3 拉鏈操作 34
2.11 集合 34
2.11.1 列表(List) 34
2.11.2 集合(Set) 37
2.11.3 映射(Map) 38
2.12 類 40
2.12.1 類的定義 40
2.12.2 get方法和set方法 41
2.12.3 構造器 41
2.12.4 內部類 42
2.13 單例對象和伴生對象 43
2.13.1 單例(object)對象 43
2.13.2 伴生對象 44
2.13.3 apply方法 44
2.14 Scala中的繼承 45
2.14.1 父類具有無參構造器的繼承 46
2.14.2 父類具有帶參構造器的繼承 46
2.15 抽象 47
2.16 Scala中的特質 48
2.16.1 將特質作為接口使用 48
2.16.2 在特質中定義具體的方法 49
2.16.3 混合使用特質的具體方法和抽象方法 49
2.17 Scala包和引用 50
2.17.1 創(chuàng)建包 50
2.17.2 引用 50
2.17.3 包重命名和隱藏方法 51
本章小結 51
練習二 52
第3章 Spark設計與運行原理 53
3.1 Spark架構設計 54
3.1.1 Spark相關術語 54
3.1.2 Spark架構 55
3.1.3 Spark運行流程 56
3.2 Spark核心功能 57
3.2.1 Spark Core組成 57
3.2.2 Spark編程模型 58
3.2.3 Spark計算模型 59
3.3 Spark運行模式 60
3.3.1 Local(本地)模式 60
3.3.2 Standalone(獨立)模式 61
3.3.3 Mesos(Spark on Mesos)模式 62
3.3.4 Yarn(Spark on Yarn)模式 63
本章小結 66
練習三 66
第4章 Spark環(huán)境搭建和使用 67
4.1 Spark開發(fā)環(huán)境概述 68
4.2 操作系統(tǒng)及其網(wǎng)絡環(huán)境準備 68
4.2.1 操作系統(tǒng)環(huán)境 68
4.2.2 遠程登錄 79
4.2.3 Linux系統(tǒng)軟件源配置 82
4.2.4 安裝和配置第二臺和第三臺虛擬機 84
4.3 Spark環(huán)境搭建 88
4.3.1 安裝JDK 88
4.3.2 安裝Hadoop 90
4.3.3 安裝MySQL Server 100
4.3.4 安裝Hive 102
4.3.5 安裝ZooKeeper 109
4.3.6 安裝Scala 111
4.3.7 安裝Kafka 112
4.3.8 安裝Spark 114
4.4 Spark集群環(huán)境測試 116
4.4.1 使用Spark-submit提交任務 116
4.4.2 使用Spark-shell交互式命令工具 120
本章小結 122
練習四 122
第5章 Spark RDD彈性分布式數(shù)據(jù)集 123
5.1 RDD簡介 124
5.1.1 RDD的特征 124
5.1.2 詞頻統(tǒng)計(WordCount)案例實現(xiàn)過程 124
5.1.3 RDD的創(chuàng)建 126
5.2 常用操作 130
5.2.1 常用的轉換 131
5.2.2 常用的動作 137
5.2.3 實例操作 141
5.3 RDD的分區(qū) 145
5.3.1 分區(qū)的概念 145
5.3.2 分區(qū)原則和方法 146
5.4 持久化 146
5.4.1 持久化存儲級別 147
5.4.2 持久化存儲級別的選擇 147
5.5 容錯機制 148
5.6 綜合實例 148
本章小結 154
練習五 154
第6章 Spark SQL結構化數(shù)據(jù)處理引擎 155
6.1 Spark SQL的基礎知識 156
6.1.1 Spark SQL簡介 156
6.1.2 Spark SQL數(shù)據(jù)抽象 156
6.1.3 程序主入口SparkSession 156
6.2 DataFrame 157
6.2.1 DataFrame簡介 157
6.2.2 創(chuàng)建DataFrame 158
6.2.3 DataFrame查看操作 165
6.2.4 DataFrame查詢操作 168
6.2.5 DataFrame輸出操作 174
6.3 DataSet 175
6.3.1 DataSet簡介 175
6.3.2 創(chuàng)建DataSet 176
6.4 Spark SQL操作數(shù)據(jù)源 178
本章小結 181
練習六 182
第7章 Spark Streaming實時流處理引擎 184
7.1 離線計算與實時計算 185
7.1.1 離線計算 185
7.1.2 實時計算 185
7.1.3 離線計算與實時計算比較 185
7.2 初探Spark Streaming 186
7.2.1 Spark Streaming簡介 186
7.2.2 Spark Streaming工作原理 186
7.2.3 Spark Streaming入門程序 188
7.3 Spark Streaming程序開發(fā) 190
7.3.1 Spark Streaming環(huán)境準備 190
7.3.2 Spark Streaming項目搭建 190
7.3.3 Spark Streaming核心代碼 191
7.3.4 Spark Streaming啟動及測試 193
7.4 DStream輸入 194
7.4.1 離散流(DStream) 194
7.4.2 DStream輸入源 194
7.4.3 文件流數(shù)據(jù)源 196
7.4.4 RDD 隊列流 197
7.4.5 Spark Streaming整合 Flume 197
7.4.6 Spark Streaming整合Kafka 201
7.5 DStream操作 203
7.5.1 無狀態(tài)操作 204
7.5.2 有狀態(tài)操作 204
7.5.3 DStream窗口操作 205
7.5.4 DStream輸出操作 206
本章小結 208
練習七 208
第8章 Spark MLlib機器學習 210
8.1 機器學習概述 211
8.1.1 機器學習簡介 211
8.1.2 大數(shù)據(jù)與機器學習 211
8.1.3 機器學習與人工智能 212
8.1.4 機器學習與深度學習 212
8.1.5 機器學習發(fā)展過程 213
8.1.6 機器學習應用 213
8.2 機器學習分類 214
8.2.1 監(jiān)督學習 215
8.2.2 無監(jiān)督學習 215
8.2.3 半監(jiān)督學習 215
8.2.4 強化學習 216
8.2.5 機器學習的基本任務 216
8.3 機器學習基本流程 216
8.3.1 機器學習基本步驟 216
8.3.2 Spark機器學習流程 217
8.4 Spark MLlib機器學習庫 220
8.4.1 MLlib介紹 220
8.3.2 MLlib數(shù)據(jù)類型 221
8.3.3 MLlib 統(tǒng)計工具 224
8.5 Spark MLlib常用算法 227
8.5.1 算法的選擇 227
8.5.2 分類算法 228
8.5.3 回歸算法 229
8.5.4 聚類算法 231
8.5.6 協(xié)同過濾算法 231
本章小結 233
練習八 233
第9章 訂單交易監(jiān)控系統(tǒng) 234
9.1 系統(tǒng)介紹 235
9.1.1 項目背景 235
9.1.2 相關技術介紹 235
9.2 系統(tǒng)設計 236
9.2.1 流程設計 236
9.2.2 系統(tǒng)架構 237
9.2.3 技術選型 237
9.3 基礎環(huán)境配置 238
9.3.1 MariaDB數(shù)據(jù)庫部署 238
9.3.2 ZooKeeper集群部署 241
9.3.3 Kafka集群部署 243
9.3.4 Canal安裝配置 244
9.3.5 HBase安裝配置 246
9.4 系統(tǒng)功能開發(fā) 248
9.4.1 訂單交易數(shù)據(jù)表設計 248
9.4.2 訂單Mock數(shù)據(jù)生成 249
9.4.3 訂單交易數(shù)據(jù)采集 253
9.4.4 訂單交易數(shù)據(jù)分析 254
本章小結 258
練習九 259
參考文獻 260
- 實用運籌學 [主編 邢育紅 于晉臣]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數(shù)學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網(wǎng)絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- 電工電子技術基礎 [主編 劉 軍 楊國龍 劉天成]
- MySQL數(shù)據(jù)庫項目式教程 [陳亞峰]
- 機械設計基礎(第二版) [主編 田亞平 李愛姣]
- 畫法幾何與機械制圖 [主編 趙軍]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現(xiàn)實應用開發(fā)實踐 [主 編 劉龍]
- 智能化技術基礎(第三版) [鄧文達 李禮]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- 網(wǎng)絡營銷 [主編 夏薇薇 劉婷 尚潔]
- 電視節(jié)目策劃與制作(微課版) [主 編 黃滴滴]
- 數(shù)據(jù)庫技術與應用實踐教程(SQL Server 2019) [主 編 嚴暉 周肆清]
- 大學應用數(shù)學 [主編 郭立娟]
- 工業(yè)機器人拆裝與調試 [主編 胡月霞 向艷芳 朱奇]
- 功能材料制備與表征實驗指導書 [龔偉平 趙軍峰 梅海娟 等編著]
- 信號與系統(tǒng)(第二版) [主編 張宇]
- 信息技術基礎 [主編 唐倩 邵銳]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Photoshop 圖形圖像項目化教程 [主編 胡斌斌 黎婭 蘇大椿]
- 體育舞蹈教程 [主編 劉偉 陳志明 曾明]
- 線性代數(shù)導學篇 [主編 史昱]
- 信息技術基礎實訓與習題指導(Windows7+Office2016) [主編 周金容 唐天國]