大數據計算系統 原理 技術與應用
王宏誌 劉海龍 張立臣 石勝飛
- 出版商: 機械工業
- 出版日期: 2023-09-01
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 332
- 裝訂: 平裝
- ISBN: 711173307X
- ISBN-13: 9787111733072
-
相關分類:
大數據 Big-data
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
Python 時間序列預測$774$735 -
$28032位匯編語言程序設計(第3版) -
$332人工智能與模式識別 -
Python 貝葉斯深度學習$479$455
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
75折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$375 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書結合作者的科學研究與教學經驗,詳細介紹了目前常用的大數據計算系統的原理、程式設計與維運、最佳化方法。
本書分為基礎篇、應用實現篇、原理篇與監控、維運、調優篇四個部分,基礎篇介紹大數據計算系統的基本概念,
應用實作篇介紹常用大數據運算系統的程式方法,為後續理解原理奠定基礎;原理篇介紹常用大數據運算系統的架構、運作機制,
並結合實際場景介紹不同計算系統的應用與設計方法;
監控、維運、調優篇介紹了不同運算系統的調優和維護機制,確保大數據計算系統的高效運作。
作者簡介
張立臣,高級工程師,信息項目管理師,系統集成高級項目經理,資深的大數據技術專家,十餘年的項目開發及管理工作經驗。主持並參與電網GIS平臺開發、銀行數據倉庫項目、機器人智能配送項目、航天科技ERP、大數據與人工智能專業平臺等多個項目。主要研究方向為大數據系統、數據倉庫、人工智能領域分析與應用。
目錄大綱
目 錄
前言
第一部分 基礎
第1章 大數據計算系統概述2
1.1 大數據計算系統的定義2
1.1.1 大數據2
1.1.2 大數據計算4
1.1.3 大數據計算系統4
1.2 常見的大數據計算系統6
1.2.1 批次計算框架Hadoop6
1.2.2 分佈式計算框架Spark6
1.2.3 流計算系統Storm7
1.2.4 分佈式圖計算框架GraphX7
1.2.5 大數據計算系統的比較7
1.3 大數據計算系統的監控與維運概述7
1.3.1 概述7
1.3.2 監控與維運的範圍8
1.3.3 大數據計算系統的監控與維運方法8
1.3.4 大數據計算系統的維運目標9
1.4 大數據計算系統的效能最佳化10
1.4.1 提升大數據計算系統性能的途徑10
1.4.2 提升大數據計算系統性能的難度11
1.4.3 維與性能優化的關係12
習題1 12
第二部分 應用實現
第2章 Hadoop的配置與程式14
2.1 批次計算框架概述14
2.1.1 計算框架14
2.1.2 批次15
2.2 Hadoop環境的配置與搭建15
2.2.1 環境配置前的準備15
2.2.2 Hadoop安裝的預備知識16
2.2.3 本地/獨立模式的配置17
2.2.4 偽分佈式模式的配置18
2.2.5 全分佈式模式的配置20
2.3 一個簡單範例22
2.3.1 環境與資料的準備22
2.3.2 在IDEA下建立基於Maven的Hadoop專案23
2.3.3 編寫WordCount程式26
2.3.4 Hadoop程式的運行過程與結果查看29
2.4 MapReduce程式設計30
2.4.1 MapReduce計算模型30
2.4.2 MapReduce程式的運行過程32
2.4.3 去重38
習題2 41
第3章 HDFS及其應用42
3.1 HDFS概述42
3.2 HDFS Shell43
3.2.1 概述43
3.2.2 幫助的使用方法44
3.2.3 通用命令列操作45
3.3 HDFS目錄與資料的瀏覽47
3.4 HDFS API48
3.4.1 概述48
3.4.2 讀文件操作48
3.4.3 寫文件操作48
3.4.4 FileUtil檔案處理49
3.4.5 HDFS API應用範例51
習題3 57
第4章 Spark的配置與程式設計58
4.1 Spark環境的安裝與部署59
4.1.1 Spark的安裝59
4.1.2 Scala的安裝60
4.1.3 Spark的源碼編譯61
4.1.4 搭建Spark單機版環境64
4.1.5 搭建Spark獨立運作環境66
4.1.6 搭建Spark on YARN環境68
4.1.7 Spark的高可用性部署70
4.2 Spark的運行72
4.2.1 Spark程式運行概述72
4.2.2 Spark的本地運行過程73
4.2.3 獨立運轉模式74
4.2.4 Spark on YARN的運行過程75
4.2.5 獨立運行模式與YARN模式的比較76
4.3 Spark Scala編程76
4.3.1 Scala的語法76
4.3.2 Scala程式設計入門82
4.3.3 Spark API的使用86
4.3.4 用Scala開發Spark應用程式的案例88
4.3.5 程式運行過程的分析93
習題4 95
第5章 Storm的配置與程式設計96
5.1 流計算概述96
5.2 Storm概述98
5.2.1 什麼是Storm98
5.2.2 Storm的特徵98
5.3 Storm開發環境的搭建99
5.3.1 Storm環境的配置99
5.3.2 命令列客戶端102
5.3.3 IDEA下建立Storm的Maven專案107
5.4 Storm編程109
5.4.1 可以與Storm整合的系統109
5.4.2 計算模型109
5.4.3 可以使用任何語言110
5.4.4 簡單的API110
5.5 Storm程式範例—單字計數110
5.5.1 達成目標110
5.5.2 建立編寫程式的套件名稱111
5.5.3 編寫spouts檔Word-Reader112
5.5.4 編寫bolts檔Word-Normalizer114
5.5.5 編寫bolts檔WordCounter115
5.5.6 編寫主函數檔Topologoy-Main116
5.5.7 透過主函數檔Topologoy-
Main運行程式117
習題5 117
第6章 GraphX及其應用118
6.1 圖計算概述118
6.1.1 圖118
6.1.2 屬性圖119
6.1.3 圖計算119
6.1.4 支援圖計算的GraphX120
6.2 GraphX程式設計120
6.2.1 GraphX專案的導入120
6.2.2 GraphX中屬性圖的表達120
6.2.3 圖操作符121
6.3 GraphX程式設計範例126
6.3.1 一個簡單的GraphX範例126
6.3.2 GraphX應用程式設計—子圖發現129
6.3.3 GraphX應用程式設計—
PageRank130
習題6 132
第三部分 原理
第7章 Hadoop的原理134
7.1 Hadoop的體系結構134
7.2 MapReduce的工作機制135
7.2.1 背景135
7.2.2 計算的執行流程137
7.2.3 計算的本地性138
7.3 MapReduce作業的運作機制139
7.3.1 經典的MapReduce139
7.3.2 YARN145
7.4 作業的調度149
7.4.1 調度選項149
7.4.2 FIFO調度器150
7.4.3 容量調度器151
7.4.4 公平調度器151
7.4.5 延遲調度152
7.4.6 主導資源的公平性153
7.5 任務的執行153
7.5.1 任務執行的環境153
7.5.2 任務的JVM重用155
7.6 Shuffle的工作原理157
7.6.1 Map端157
7.6.2 Reduce端162
習題7 166
第8章 HDFS的原理167
8.1 HDFS的體系結構167
8.1.1 NameNode的工作原理168
8.1.2 次級NameNode169
8.1.3 DataNode的工作原理170
8.1.4 NameNode與DataNode的關係171
8.1.5 複製172
8.1.6 心跳機制173
8.2 HDFS中的資料存取174
8.2.1 HDFS的寫入流程174
8.2.2 HDFS的讀取流程175
8.2.3 HDFS的資料刪除流程176
8.3 安全機制177
8.4 容錯機制179
8.4.1 HDFS異常處理179
8.4.2 流水線恢復185
8.4.3 故障檢測186
8.4.4 NameNode節點容錯187
8.5 HDFS on YARN187
8.5.1 NameNode單點故障187
8.5.2 HDFS Federation188
8.5.3 高可用性190
習題8 190
第9章 Spark的原理192
9.1 Spark的原理概述192
9.2 Spark的RDD194
9.2.1 什麼是RDD194
9.2.2 RDD的操作195
9.2.3 RDD的特性206
9.2.4 RDD的實現原理207
9.3 Spark的儲存209
9.3.1 概述209
9.3.2 RDD的持久化210
9.3.3 Shuffle資料的持久化211
9.4 Spark任務的執行與提交213
9.4.1 跨應用程式進行調度213
9.4.2 Spark作業調度214
9.5 Spark的容錯原理215
9.5.1 Lineage容錯216
9.5.2 檢查點容錯216
習題9 216
第10章 Storm的原理218
10.1 Storm的概念與系統架構218
10.1.1 Storm的基本概念218
10.1.2 Storm的系統架構221
10.2 Storm的運作原理222
10.2.1 Storm的工作流程222
10.2.2 Storm元資料223
10.3 Storm拓樸的並發機制223
10.3.1 拓樸的運行223
10.3.2 配置拓樸的並行度224
10.4 Storm的通訊機制225
10.4.1 Worker進程間通訊225
10.4.2 Worker進程間通訊的分析226
10.5 Storm的容錯227
10.5.1 任務等級失敗227
10.5.2 任務槽故障等級失敗227
10.5.3 叢集節點故障227
10.5.4 Nimbus節點故障227
習題10 227
第11章 GraphX的原理229
11.1 GraphX概述229
11.2 GraphX的圖資料儲存230
11.2.1 圖資料儲存策略230
11.2.2 GraphX中儲存策略的實作232
11.3 GraphX對圖計算的支援234
11.3.1 GraphX中的圖計算操作234
11.3.2 GraphX對Pregel的實現236
習題11 239
第四部分 監控、維運與調優
第12章 大數據計算系統的監控242
12.1 監控的準備工作242
12.1.1 掌握系統的硬件環境242
12.1.2 掌握系統的網絡環境244
12.1.3 掌握系統的配置環境245
12.2 監控內容248
12.2.1 硬件資源的監控248
12.2.2 HDFS的監控250
12.2.3 上層服務的監控251
12.3 Hadoop監控的相關參數251
12.3.1 JVM指標251
12.3.2 RPC指標252
12.3.3 NameNode指標253
12.3.4 DataNode指標254
12.4 透過HTTP接口監控Hadoop的狀態254
12.5 Hadoop的監控指令255
12.5.1 fsck指令255
12.5.2 dfsadmin指令256
12.6 編寫自己的監控工具259
12.7 利用Ganglia進行Hadoop叢集監控259
12.7.1 Ganglia的安裝260
12.7.2 Ganglia的使用測試262
12.8 Hadoop的其他監控工具264
習題12 264
第13章 大數據計算系統的運維265
13.1 Hadoop及相關服務的啟動與停止265
13.1.1 啟動操作及順序265
13.1.2 停止操作及順序267
13.1.3 任務停止後的日誌查看268
13.2 使用者身分確認及授權270
13.2.1 身份確認270
13.2.2 授權271
13.3 Hadoop的維運指令272
13.3.1 Hadoop Shell中的維運指令273
13.3.2 增加DataNode275
13.3.3 刪除DataNode277
13.4 Hadoop中的資料遷移與備份279
13.4.1 HDFS資料塊的自動備份279
13.4.2 Hadoop資料目錄的遷移279
13.4.3 利用distcp進行資料遷移280
13.5 Hadoop的容災處理282
13.5.1 NameNode多目錄配置282
13.5.2 DataNode多目錄配置283
13.5.3 配置高可用:冷備份283
13.5.4 配置高可用:熱備份285
13.5.5 測試Hadoop高可用的自動容災287
13.6 基於Greenplum進行Hadoop故障檢測287
習題13 288
第14章 大數據計算系統的調優289
14.1 為什麼要進行調優289
14.2 如何調優290
14.2.1 明確調優的範圍291
14.2.2 明確調優的目的292
14.2.3 調優不是一勞永逸的293
14.3 Hadoop的效能指標293
14.3.1 Hadoop的作業效能問題分析293
14.3.2 Hadoop的負載分析293
14.4 系統優化299
14.4.1 作業系統的最佳化299
14.4.2 JVM參數的最佳化299
14.5 機架感知對性能調優的影響302
14.6 Hadoop系統參數調優304
14.6.1 Hadoop系統的參數304
14.6.2 參數優化的原則316
14.6.3 參數調優的案例316
14.7 生產環境的Hadoop效能優化319
習題14 320
