大資料架構之:Spark
Spark是UC Berkeley AMP 實驗室基於map reduce演算法實現的分散式計算框架,輸出和結果儲存在記憶體中,不需要頻繁讀寫HDFS,資料處理效率更高
Spark適用於近線或準實時、資料探勘與機器學習應用場景
Spark和Hadoop
Spark是一個針對超大資料集合的低延遲的叢集分散式計算系統,比MapReducer快40倍左右。
Spark是hadoop的升級版本,Hadoop作為第一代產品使用HDFS,第二代加入了Cache來儲存中間計算結果,並能適時主動推Map/Reduce任務,第三代就是Spark倡導的流Streaming。
Spark相容Hadoop的APi,能夠讀寫Hadoop的HDFS HBASE 順序檔案等。
容錯
–基於血統的容錯,資料恢復
–checkpoint
checkpoint是一個內部事件,這個事件啟用以後會觸發資料庫寫程式(DBWR)將資料緩衝(DATABUFFER CACHE)中的髒資料塊寫出到資料檔案中。
在資料庫系統中,寫日誌和寫資料檔案是資料庫中IO消耗最大的兩種操作,在這兩種操作中寫資料檔案屬於分散寫,寫日誌檔案是順序寫,因此為了保證資料庫的效能,通常資料庫都是保證在提交(commit)完成之前要先保證日誌都被寫入到日誌檔案中,而髒資料塊則儲存在資料快取(buffer cache)中再不定期的分批寫入到資料檔案中。也就是說日誌寫入和提交操作是同步的,而資料寫入和提交操作是不同步的。這樣就存在一個問題,當一個資料庫崩潰的時候並不能保證快取裡面的髒資料全部寫入到資料檔案中,這樣在例項啟動的時候就要使用日誌檔案進行恢復操作,將資料庫恢復到崩潰之前的狀態,保證資料的一致性。檢查點是這個過程中的重要機制,通過它來確定,恢復時哪些重做日誌應該被掃描並應用於恢復。
一般所說的checkpoint是一個資料庫事件(event),checkpoint事件由checkpoint程式(LGWR/CKPT程式)發出,當checkpoint事件發生時DBWn會將髒塊寫入到磁碟中,同時資料檔案和控制檔案的檔案頭也會被更新以記錄checkpoint資訊。
SparkStreaming
什麼是SparkStreaming:
Spark是一個類似於Hadoop的MapReduce分散式計算框架,其核心是彈性分散式資料集(RDD,一個在記憶體中的資料集合),提供了比MapReduce更豐富的模型,可以在快速在記憶體中對資料集進行多次迭代,以支援複雜的資料探勘演算法和圖形計算演算法。 Spark擁有Hadoop MapReduce所具有的優點;但不同於Hadoop MapReduce的是計算任務中間輸出和結果可以儲存在記憶體中,從而不再需要讀寫HDFS,節省了磁碟IO耗,號稱效能比Hadoop快100倍。 Spark Streaming是一種構建在Spark上的實時計算框架,它擴充套件了Spark處理大規模流式資料的能力。即SparkStreaming 是基於Spark的流式計算框架。
Spark Streaming的優勢在於:
1、能執行在100+的結點上,並達到秒級延遲。
2、使用基於記憶體的Spark作為執行引擎,具有高效和容錯的特性。
3、能整合Spark的批處理和互動查詢。
4、為實現複雜的演算法提供和批處理類似的簡單介面。
SparkStreaming原理
Spark Streaming是將流式計算分解成一系列短小的批處理作業。這裡的批處理引擎是Spark,也就是把Spark Streaming的輸入資料按照batch size(如1秒)分成一段一段的資料(Discretized Stream),每一段資料都轉換成Spark中的RDD(Resilient Distributed Dataset),然後將Spark Streaming中對DStream的Transformation操作變為針對Spark中對RDD的Transformation操作。
相關文章
- [大資料] Spark架構詳解大資料Spark架構
- Spark資料收藏--------Spark執行架構Spark架構
- 架構之:資料流架構架構
- [大資料之Spark]——快速入門大資料Spark
- 大資料架構師大資料架構
- spark基礎之spark sql執行原理和架構SparkSQL架構
- 大資料架構和模式(一)——大資料分類和架構簡介大資料架構模式
- 大資料架構和模式(三)——理解大資料解決方案的架構層大資料架構模式
- 深入理解spark之架構與原理Spark架構
- 資料架構之我見架構
- 大資料---(3)金融資料架構大資料架構
- 資料脫敏大資料架構設計大資料架構
- 架構設計之資料分片架構
- 大資料基礎架構總結大資料架構
- 大資料架構師必讀:常見的七種Hadoop和Spark專案案例大資料架構HadoopSpark
- 【大資料學習日記】Spark之shuffle調優大資料Spark
- 大資料架構師知識圖譜大資料架構
- 大資料平臺架構設計探究大資料架構
- 大資料分類和架構簡介大資料架構
- 常用的幾種大資料架構剖析大資料架構
- 大資料平臺核心架構圖鑑大資料架構
- 大資料的核心架構層是哪些?大資料架構
- 大資料Lambda架構概念及應用大資料架構
- 什麼是大資料系統架構大資料架構
- Google大資料技術架構探祕Go大資料架構
- 【大資料】Spark RDD基礎大資料Spark
- 按照業務領域畫資料架構圖 業務架構 資料架構架構
- 資料湖 VS 資料倉儲之爭?阿里提出大資料架構新概念:湖倉一體阿里大資料架構
- 少即是多--資料架構之我見架構
- 【虹科乾貨】Lambda資料架構和Kappa資料架構——構建現代資料架構架構APP
- FunData — 電競大資料系統架構演進大資料架構
- 企業級大資料架構設計【2】大資料架構
- 美圖大資料平臺架構實踐大資料架構
- 夏軍:小米大資料整合架構演化之路大資料架構
- DKHadoop大資料平臺架構詳解Hadoop大資料架構
- 大資料架構師從入門到精通大資料架構
- Hulu大資料架構與應用經驗大資料架構
- 關於架構離不開資料結構之說架構資料結構