-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Apache Spark源碼剖析

( 簡體 字)
作者:許鵬類別:1. -> 網路與通信 -> Web Server -> Apache
   2. -> 程式設計 -> Spark
譯者:
出版社:電子工業出版社Apache Spark源碼剖析 3dWoo書號: 40855
詢問書籍請說出此書號!

缺書
NT售價: 340

出版日:3/1/2015
頁數:304
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121254208
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

筆者接觸Spark時間不算很長,而本書之所以能夠出版,憑借的是濃厚的興趣和執著之心。
這一切還要從Storm說起。筆者一直在做互聯網相關工作,但接觸大數據的時間并不長,當時Hadoop和Storm等非常紅火,引起了筆者的“窺視”之心。從2013年開始,筆者打算看看Hadoop的源碼實現,觀察其代碼規模,發覺所花時間可能會很長。恰好其時Storm風頭正勁,于是轉向Storm源碼,0.8版的Storm代碼規模不過20 000行左右,感覺還是比較好入手的。
Storm源碼分析期間,筆者還學習了Clojure、ZeroMQ、Thrift、ZooKeeper、LMAX Disruptor等新技術,對于實時流數據處理算是有了一個大概的了解。由于聽說在實時流數據處理領域Spark技術也很強悍,而且在容錯性方面具有天生的優勢,更引發了筆者的興趣,為了弄清楚究竟,于是開始了Spark的源碼走讀過程。
筆者是以讀Spark論文開始的,說老實話覺得晦澀難懂,因為無法將其映射到內存使用、進
程啟動、線程運行、消息傳遞等基本問題上。或許換個方法會更好,故筆者選擇直接從源碼入手,如此一來事情反而變簡單了。在源碼分析的過程中,筆者始終抓住資源分配、消息傳遞、容錯處理等基本問題設問,然后一步步努力尋找答案,所有的問題漸漸迎刃而解。
筆者關于源碼分析有一個心得,就是要緊緊把握住計算的基本模型,然后結合新分析問題
的業務領域,將業務上的新問題轉換到計算處理的老套路上來,然后就可以以不變應萬變,而不被一些新技術名詞晃花了眼。這里所說的老套路是指從操作系統的角度來看,如果能事先深度了解操作系統,將對分析一些新應用程序大有裨益。
Spark源碼采用Scala語言編寫,那么閱讀Spark源碼之前,是否一定要先學Scala呢?筆者個人以為不必,只要你有一些Java或C++編程語言的基礎,就可以開始看Spark源碼,遇到不懂的地方再去學習,效率反而會大大提高,做到有的放矢。將學習中遇到的知識點,從函數式編程、泛型編程、面向對象、并行編程等幾個方面去整理歸納,這樣能夠快速將Scala語言的框架勾勒出來。
本書第1章和第2章簡要介紹了大數據分析技術的產生背景和演進過程;第3∼5章詳細分析
了Spark Core中的作業規劃、提交及任務執行等內容,對于要深刻把握Spark實現機理的讀者來說,這幾章值得反復閱讀;第6∼9章就Spark提供的高級Lib庫進行了簡要的分析,分析的思路是解決的主要問題是什么、解決的方案是如何產生的,以及方案是如何通過代碼來具體實現的。
在對源碼有了一定的分析和掌握之后,再回過頭來看一下Spark相關的論文,這時候對論文
的理解可能會更順暢。
Spark的整體框架非常龐大,涵蓋的范圍也很廣,隨著筆者在工作中使用得越來越具體,這
樣的感受也越來越深。另外,必須要說對于Spark來說,筆者所做的分析實在有限,個中錯誤在所難免,讀者諸君還請多多諒解。
在本書成稿期間,電子工業出版社的付睿編輯和李云靜編輯給出了極為詳細的改進意見,
在這里表示衷心的感謝。最后感謝家人的支持和鼓勵,親愛的老婆和懂事的兒子給了筆者堅持的理由和勇氣。
許 鵬
2015年2月
內容簡介:

本書以Spark 1.02版本源碼為切入點,著力于探尋Spark所要解決的主要問題及其解決辦法,通過一系列精心設計的小實驗來分析每一步背后的處理邏輯。
本書第3∼5章詳細介紹了Spark Core中作業的提交與執行,對容錯處理也進行了詳細分析,有助讀者深刻把握Spark實現機理。第6∼9章對Spark Lib庫進行了初步的探索。在對源碼有了一定的分析之后,讀者可盡快掌握Spark技術。

目錄:

第一部分Spark概述1
第1章初識Spark 3
1.1 大數據和Spark 3
1.1.1 大數據的由來4
1.1.2 大數據的分析4
1.1.3 Hadoop 5
1.1.4 Spark簡介6
1.2 與Spark的第一次親密接觸7
1.2.1 環境準備7
1.2.2 下載安裝Spark 8
1.2.3 Spark下的WordCount 8
第二部分Spark核心概念13
第2章Spark整體框架 15
2.1 編程模型15
2.1.1 RDD 17
2.1.2 Operation 17
2.2 運行框架18
2.2.1 作業提交18
2.2.2 集群的節點構成18
2.2.3 容錯處理19
2.2.4 為什么是Scala 19
2.3 源碼閱讀環境準備19
2.3.1 源碼下載及編譯19
2.3.2 源碼目錄結構21
2.3.3 源碼閱讀工具21
2.3.4 本章小結22
第3章SparkContext初始化 23
3.1 spark-shell 23
3.2 SparkContext的初始化綜述27
3.3 Spark Repl綜述30
3.3.1 Scala Repl執行過程31
3.3.2 Spark Repl 32
第4章Spark作業提交 33
4.1 作業提交33
4.2 作業執行38
4.2.1 依賴性分析及Stage劃分39
4.2.2 Actor Model和Akka 46
4.2.3 任務的創建和分發47
4.2.4 任務執行53
4.2.5 Checkpoint和Cache 62
4.2.6 WebUI和Metrics 62
4.3 存儲機制71
4.3.1 Shuffle結果的寫入和讀取71
4.3.2 Memory Store 80
4.3.3 存儲子模塊啟動過程分析81
4.3.4 數據寫入過程分析82
4.3.5 數據讀取過程分析84
4.3.6 TachyonStore 88
第5章部署方式分析 91
5.1 部署模型91
5.2 單機模式local 92
5.3 偽集群部署local-cluster 93
5.4 原生集群Standalone Cluster 95
5.4.1 啟動Master 96
5.4.2 啟動Worker 97
5.4.3 運行spark-shell 102
5.4.4 容錯性分析106
5.5 Spark On YARN 112
5.5.1 YARN的編程模型112
5.5.2 YARN中的作業提交112
5.5.3 Spark On YARN實現詳解113
5.5.4 SparkPi on YARN 122
第三部分Spark Lib 129
第6章Spark Streaming 131
6.1 Spark Streaming整體架構131
6.1.1 DStream 132
6.1.2 編程接口133
6.1.3 Streaming WordCount 134
6.2 Spark Streaming執行過程135
6.2.1 StreamingContext初始化過程136
6.2.2 數據接收141
6.2.3 數據處理146
6.2.4 BlockRDD 155
6.3 窗口操作158
6.4 容錯性分析159
6.5 Spark Streaming vs. Storm 165
6.5.1 Storm簡介165
6.5.2 Storm和Spark Streaming對比168
6.6 應用舉例168
6.6.1 搭建Kafka Cluster 168
6.6.2 KafkaWordCount 169
第7章SQL 173
7.1 SQL語句的通用執行過程分析175
7.2 SQL On Spark的實現分析178
7.2.1 SqlParser 178
7.2.2 Analyzer 184
7.2.3 Optimizer 191
7.2.4 SparkPlan 192
7.3 Parquet 文件和JSON數據集196
7.4 Hive簡介197
7.4.1 Hive 架構197
7.4.2 HiveQL On MapReduce執行過程分析199
7.5 HiveQL On Spark詳解200
7.5.1 Hive On Spark環境搭建206
7.5.2 編譯支持Hadoop 2.x的Spark 211
7.5.3 運行Hive On Spark測試用例213
第8章GraphX 215
8.1 GraphX簡介215
8.1.1 主要特點216
8.1.2 版本演化216
8.1.3 應用場景217
8.2 分布式圖計算處理技術介紹218
8.2.1 屬性圖218
8.2.2 圖數據的存儲與分割219
8.3 Pregel計算模型220
8.3.1 BSP 220
8.3.2 像頂點一樣思考220
8.4 GraphX圖計算框架實現分析223
8.4.1 基本概念223
8.4.2 圖的加載與構建226
8.4.3 圖數據存儲與分割227
8.4.4 操作接口228
8.4.5 Pregel在GraphX中的源碼實現230
8.5 PageRank 235
8.5.1 什么是PageRank 235
8.5.2 PageRank核心思想235
第9章MLLib 239
9.1 線性回歸239
9.1.1 數據和估計240
9.1.2 線性回歸參數求解方法240
9.1.3 正則化245
9.2 線性回歸的代碼實現246
9.2.1 簡單示例246
9.2.2 入口函數train 247
9.2.3 最優化算法optimizer 249
9.2.4 權重更新update 256
9.2.5 結果預測predict 257
9.3 分類算法257
9.3.1 邏輯回歸258
9.3.2 支持向量機260
9.4 擬牛頓法261
9.4.1 數學原理261
9.4.2 代碼實現265
9.5 MLLib與其他應用模塊間的整合268
第四部分附錄271
附錄A Spark源碼調試 273
附錄B 源碼閱讀技巧 283
序: