Spark大數(shù)據(jù)處理技術(shù)

-
【作 者】主編 劉仁山 周洪翠 莊新妍
【I S B N 】978-7-5226-0485-5
【責(zé)任編輯】鞠向超
【適用讀者群】本專通用
【出版時間】2022-02-18
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數(shù)】268
【千字數(shù)】418
【印 張】16.75
【定 價】¥48
【叢 書】普通高等教育數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)教材
【備注信息】
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關(guān)圖書
本書面向大數(shù)據(jù)技術(shù)專業(yè),遵循知識性、系統(tǒng)性、實用性、條理性、連貫性和先進性的原則,力求激發(fā)讀者的興趣,注重各知識點之間的銜接和實踐性環(huán)節(jié)教學(xué),精心組織內(nèi)容,做到由淺入深、突出重點。
本書共9章,第1章為Spark基礎(chǔ),主要包括Spark的基礎(chǔ)知識、應(yīng)用場景和生態(tài)系統(tǒng)等內(nèi)容;第2章為Scala語言基礎(chǔ),包括Scala 編程基礎(chǔ)、Scala數(shù)組和集合以及映射、Scala對象和多繼承等內(nèi)容;第3章為Spark設(shè)計與運行原理,包括Spark架構(gòu)、Spark Core組成、Spark編程模型和計算模型等內(nèi)容;第4章為Spark環(huán)境搭建和使用,包括Spark系列軟件環(huán)境配置(JDK、Hadoop、MySQL-Server、Hive、ZooKeeper 、Scala、Kafka、Spark)和Spark-shell交互式命令工具使用等內(nèi)容;第5章為Spark RDD彈性分布式數(shù)據(jù)集,包括RDD創(chuàng)建方式、RDD轉(zhuǎn)換算子和行動算子操作方法等內(nèi)容;第6章為Spark SQL結(jié)構(gòu)化數(shù)據(jù)處理引擎,包括DataFrame和DataSet的創(chuàng)建和操作以及利用Spark SQL操作MySQL數(shù)據(jù)源等內(nèi)容;第7章為Spark Streaming實時流處理引擎,包括Spark Streaming程序開發(fā)、DStream 高級數(shù)據(jù)源使用和數(shù)據(jù)轉(zhuǎn)換操作等內(nèi)容;第8章為Spark MLlib機器學(xué)習(xí),包括機器學(xué)習(xí)基礎(chǔ)、Spark MLlib 機器學(xué)習(xí)庫和常用算法等內(nèi)容;第9章為訂單交易監(jiān)控系統(tǒng),主要完成訂單交易實時監(jiān)控平臺的搭建,通過綜合案例全面應(yīng)用Spark大數(shù)據(jù)處理技術(shù)中幾乎所有知識點,幫助讀者運用Spark進行大數(shù)據(jù)技術(shù)開發(fā)和應(yīng)用。
本書可作為普通高校或高職院校大數(shù)據(jù)技術(shù)課程的教材,也可供大數(shù)據(jù)技術(shù)領(lǐng)域從業(yè)者參考學(xué)習(xí)。
本書配有電子課件、源代碼、課后習(xí)題答案、微課視頻等,讀者可以從中國水利水電出版社網(wǎng)站(www.waterpub.com.cn)或萬水書苑網(wǎng)站(www.dgboyong.cn)免費下載。
內(nèi)容實用——理論與實踐結(jié)合,重點突出應(yīng)用
體系完善——構(gòu)建完整的大數(shù)據(jù)專業(yè)解決方案
產(chǎn)教融合——高校企業(yè)共參與,對標(biāo)行業(yè)標(biāo)準(zhǔn)
資源豐富——微課、課件、教案、源碼、答案
隨著大數(shù)據(jù)時代的到來,無論是傳統(tǒng)行業(yè)、互聯(lián)網(wǎng)行業(yè)還是IT行業(yè)都將應(yīng)用大數(shù)據(jù)技術(shù)。大數(shù)據(jù)技術(shù)可以幫助企業(yè)進行數(shù)據(jù)整合分析并降低生產(chǎn)成本,比如,互聯(lián)網(wǎng)公司可以在廣告業(yè)務(wù)方面進行大數(shù)據(jù)應(yīng)用分析、效果分析和定向優(yōu)化等,在推薦系統(tǒng)方面能實施大數(shù)據(jù)優(yōu)化排名、熱點分析和日志監(jiān)控等。
Spark是一種基于內(nèi)存的、分布式的大數(shù)據(jù)處理框架,憑借著快速、簡潔易用以及支持多種運行模式而成為很多企業(yè)的大數(shù)據(jù)分析框架。本書不僅介紹Spark基礎(chǔ)理論和運行原理,還深入淺出地講解與Spark學(xué)習(xí)相關(guān)的編程語言、環(huán)境搭建、編程模型、數(shù)據(jù)處理技術(shù)、存儲原理和機器學(xué)習(xí)等內(nèi)容,所涉及的技術(shù)都結(jié)合代碼進行講解并實現(xiàn)具體功能,讀者可以通過實例更加深入地理解Spark的運行機制。
本書內(nèi)容主要包括Spark基礎(chǔ)、Scala語言基礎(chǔ)、Spark設(shè)計與運行原理、Spark環(huán)境搭建和使用、Spark RDD彈性分布式數(shù)據(jù)集、Spark SQL結(jié)構(gòu)化數(shù)據(jù)處理引擎、Spark Streaming實時流處理引擎、Spark MLlib機器學(xué)習(xí)、訂單交易監(jiān)控系統(tǒng)等,最后通過綜合案例全面應(yīng)用Spark中幾乎所有知識點,幫助讀者運用Spark進行大數(shù)據(jù)技術(shù)開發(fā)和應(yīng)用。
本書融入了豐富的教學(xué)和實際工作經(jīng)驗,內(nèi)容安排合理、結(jié)構(gòu)組織有序,能夠讓讀者循序漸進地學(xué)習(xí),通過精講多個實例激發(fā)讀者學(xué)習(xí)興趣,圖文并茂、直觀易懂,適合初學(xué)者快速學(xué)習(xí)Spark編程;本書實例豐富,突出該課程操作性強的特點,每章由思維導(dǎo)圖、要點、正文、小結(jié)和習(xí)題組成,重點內(nèi)容配有微課視頻講解,課后習(xí)題配有答案,便于學(xué)生課后鞏固相關(guān)知識,并且提供完整源代碼。
本書首先講解理論基礎(chǔ)知識,然后圍繞理論知識點進行編程實踐,最后通過綜合案例結(jié)合工作實踐培養(yǎng)分析和解決問題的能力,用貼合實際的應(yīng)用場景提升編程水平,充分鞏固各個知識點的應(yīng)用;源代碼全部經(jīng)過測試,能夠在Linux操作系統(tǒng)下編譯和運行。
本書編者均從事大數(shù)據(jù)技術(shù)相關(guān)課程一線教學(xué),如Spark、Hadoop、Java、Python等,具有豐富的教學(xué)經(jīng)驗和較強的實際項目開發(fā)能力,主持或參與多個系統(tǒng)開發(fā)項目,部分教師具有企業(yè)軟件開發(fā)工作經(jīng)歷。
本書由劉仁山、周洪翠、莊新妍任主編,塔娜、腰蘇圖任副主編,主要編寫分工如下:莊新妍編寫第1章和第2章,塔娜編寫第3章和第4章,周洪翠編寫第5章和第6章,劉仁山編寫第7章并負責(zé)全書統(tǒng)稿、修改、定稿工作,腰蘇圖編寫第8章和第9章。本書編寫得到了北京華晟經(jīng)世有限公司的大力支持,在此表示感謝。
盡管編者在編寫過程中力求準(zhǔn)確、完善,但書中不妥之處在所難免,懇請讀者批評指正。
編 者
2021年9月
第1章 Spark基礎(chǔ) 1
1.1 初識Spark 2
1.1.1 Spark簡介 2
1.1.2 Spark發(fā)展 2
1.2 Spark應(yīng)用場景 3
1.3 Spark生態(tài)系統(tǒng) 4
1.4 Spark與Hadoop對比 7
1.5 Spark多語言編程 8
本章小結(jié) 9
練習(xí)一 9
第2章 Scala語言基礎(chǔ) 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 關(guān)鍵字 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控制結(jié)構(gòu) 23
2.5.1 if...else語句 23
2.5.2 循環(huán)語句 24
2.6 函數(shù)的定義和調(diào)用 26
2.6.1 內(nèi)置函數(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ù)組轉(zhuǎn)換 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 構(gòu)造器 41
2.12.4 內(nèi)部類 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 父類具有無參構(gòu)造器的繼承 46
2.14.2 父類具有帶參構(gòu)造器的繼承 46
2.15 抽象 47
2.16 Scala中的特質(zhì) 48
2.16.1 將特質(zhì)作為接口使用 48
2.16.2 在特質(zhì)中定義具體的方法 49
2.16.3 混合使用特質(zhì)的具體方法和抽象方法 49
2.17 Scala包和引用 50
2.17.1 創(chuàng)建包 50
2.17.2 引用 50
2.17.3 包重命名和隱藏方法 51
本章小結(jié) 51
練習(xí)二 52
第3章 Spark設(shè)計與運行原理 53
3.1 Spark架構(gòu)設(shè)計 54
3.1.1 Spark相關(guān)術(shù)語 54
3.1.2 Spark架構(gòu) 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
本章小結(jié) 66
練習(xí)三 66
第4章 Spark環(huán)境搭建和使用 67
4.1 Spark開發(fā)環(huán)境概述 68
4.2 操作系統(tǒng)及其網(wǎng)絡(luò)環(huán)境準(zhǔ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提交任務(wù) 116
4.4.2 使用Spark-shell交互式命令工具 120
本章小結(jié) 122
練習(xí)四 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 常用的轉(zhuǎn)換 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
本章小結(jié) 154
練習(xí)五 154
第6章 Spark SQL結(jié)構(gòu)化數(shù)據(jù)處理引擎 155
6.1 Spark SQL的基礎(chǔ)知識 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
本章小結(jié) 181
練習(xí)六 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)境準(zhǔ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
本章小結(jié) 208
練習(xí)七 208
第8章 Spark MLlib機器學(xué)習(xí) 210
8.1 機器學(xué)習(xí)概述 211
8.1.1 機器學(xué)習(xí)簡介 211
8.1.2 大數(shù)據(jù)與機器學(xué)習(xí) 211
8.1.3 機器學(xué)習(xí)與人工智能 212
8.1.4 機器學(xué)習(xí)與深度學(xué)習(xí) 212
8.1.5 機器學(xué)習(xí)發(fā)展過程 213
8.1.6 機器學(xué)習(xí)應(yīng)用 213
8.2 機器學(xué)習(xí)分類 214
8.2.1 監(jiān)督學(xué)習(xí) 215
8.2.2 無監(jiān)督學(xué)習(xí) 215
8.2.3 半監(jiān)督學(xué)習(xí) 215
8.2.4 強化學(xué)習(xí) 216
8.2.5 機器學(xué)習(xí)的基本任務(wù) 216
8.3 機器學(xué)習(xí)基本流程 216
8.3.1 機器學(xué)習(xí)基本步驟 216
8.3.2 Spark機器學(xué)習(xí)流程 217
8.4 Spark MLlib機器學(xué)習(xí)庫 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
本章小結(jié) 233
練習(xí)八 233
第9章 訂單交易監(jiān)控系統(tǒng) 234
9.1 系統(tǒng)介紹 235
9.1.1 項目背景 235
9.1.2 相關(guān)技術(shù)介紹 235
9.2 系統(tǒng)設(shè)計 236
9.2.1 流程設(shè)計 236
9.2.2 系統(tǒng)架構(gòu) 237
9.2.3 技術(shù)選型 237
9.3 基礎(chǔ)環(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ù)表設(shè)計 248
9.4.2 訂單Mock數(shù)據(jù)生成 249
9.4.3 訂單交易數(shù)據(jù)采集 253
9.4.4 訂單交易數(shù)據(jù)分析 254
本章小結(jié) 258
練習(xí)九 259
參考文獻 260
- 實用運籌學(xué) [主編 邢育紅 于晉臣]
- 電子技術(shù)(第二版) [主編 覃愛娜 李飛]
- 勞動爭議處理實務(wù) [主編 王秀卿 羅靜]
- 工程數(shù)學(xué) [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 武術(shù)基礎(chǔ)教程 [主編 李代勇 謝志民]
- 計算機網(wǎng)絡(luò)實訓(xùn)教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習(xí)題集(多學(xué)時) [主編 趙軍]
- 電工電子技術(shù)基礎(chǔ) [主編 劉 軍 楊國龍 劉天成]
- MySQL數(shù)據(jù)庫項目式教程 [陳亞峰]
- 機械設(shè)計基礎(chǔ)(第二版) [主編 田亞平 李愛姣]
- 畫法幾何與機械制圖 [主編 趙軍]
- C語言程序設(shè)計習(xí)題與實驗指導(dǎo)(第二版) [主編 甄增榮 張賓]
- C語言程序設(shè)計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現(xiàn)實應(yīng)用開發(fā)實踐 [主 編 劉龍]
- 智能化技術(shù)基礎(chǔ)(第三版) [鄧文達 李禮]
- 面向?qū)ο蟪绦蛟O(shè)計 [主編 張勇 張平華 趙小龍]
- 網(wǎng)絡(luò)營銷 [主編 夏薇薇 劉婷 尚潔]
- 電視節(jié)目策劃與制作(微課版) [主 編 黃滴滴]
- 數(shù)據(jù)庫技術(shù)與應(yīng)用實踐教程(SQL Server 2019) [主 編 嚴暉 周肆清]
- 大學(xué)應(yīng)用數(shù)學(xué) [主編 郭立娟]
- 工業(yè)機器人拆裝與調(diào)試 [主編 胡月霞 向艷芳 朱奇]
- 功能材料制備與表征實驗指導(dǎo)書 [龔偉平 趙軍峰 梅海娟 等編著]
- 信號與系統(tǒng)(第二版) [主編 張宇]
- 信息技術(shù)基礎(chǔ) [主編 唐倩 邵銳]
- Python 語言程序設(shè)計實踐指導(dǎo) [主編 張雙獅]
- Photoshop 圖形圖像項目化教程 [主編 胡斌斌 黎婭 蘇大椿]
- 體育舞蹈教程 [主編 劉偉 陳志明 曾明]
- 線性代數(shù)導(dǎo)學(xué)篇 [主編 史昱]
- 信息技術(shù)基礎(chǔ)實訓(xùn)與習(xí)題指導(dǎo)(Windows7+Office2016) [主編 周金容 唐天國]
- 大數(shù)據(jù)技術(shù)導(dǎo)論
- HBase分布式存儲系統(tǒng)應(yīng)用(第二版)
- Hive編程技術(shù)與應(yīng)用(第二版)
- Python 語言程序設(shè)計實踐指導(dǎo)
- Spark大數(shù)據(jù)處理技術(shù)
- 數(shù)據(jù)清洗
- R語言基礎(chǔ)及應(yīng)用
- 數(shù)據(jù)庫原理及應(yīng)用(MySQL版)
- 大數(shù)據(jù)導(dǎo)論
- 大數(shù)據(jù)可視化技術(shù)
- Python語言程序設(shè)計
- Java編程基礎(chǔ)
- Java編程基礎(chǔ)實踐指導(dǎo)
- 深度學(xué)習(xí)—卷積神經(jīng)網(wǎng)絡(luò)算法原理與應(yīng)用
- Hive編程技術(shù)與應(yīng)用
- HBase分布式存儲系統(tǒng)應(yīng)用