矽谷之路34:深入淺出Spark(一)什麼是Spark

查看完整視頻:http://www.bittiger.io/classes

這篇視頻解讀的是Databricks的Sameer的講座《Advanced Apache Spark》的第一部分。Spark已經成為了具有調度和管理能力的通用分散式計算引擎。相對於傳統的MapReduce,Spark砍掉了將中間數據存回HDFS的消耗,並且通過記錄計算過程的方式又砍掉了複製多份數據的消耗,因此取得了10-100倍的提速。

有朋友可能會問內存、硬碟、SSD、網路在傳輸數據的時候到底差異多大呢?在這篇視頻中給出了一份答案:

  • 內存:10GB/s
  • 硬碟:100MB/s
  • SSD:600MB/s
  • 同機架網路傳輸:125MB/s
  • 跨機架網路傳輸:12.5MB/s

Spark是時下最火的分散式計算引擎,這個系列我們就來講講Spark。

Spark已經成為了具有調度和管理能力的通用分散式計算引擎,讓我們來偷窺一下Spark生態圈。最內部是Spark的核心,提供最基本的計算可:以對內存和硬碟進行調度,調用CPU計算,並且提供了多種介面,比如Java、Python、R等。外一層提供了多種處理數據的庫,比如SQL、Streaming、Machine Learning(MLlib)等。再外一層是Spark多種運行情況,比如單機、Yarn、Mesos等。最外面是底層數據如何存儲,有HDFS、Hbase、MongoDB等許多選擇。

Spark的一大優勢就是快,為什麼Spark可以比Hadoop快很多呢?一般來說使用Hadoop進行MapReduce計算需要進行多次迭代,每次計算中間結果都要存回HDFS,HDFS使用的是硬碟存儲,速度很慢,並且HDFS會進行三次備份,就更慢。

tSpark則不同,Spark會將數據拿到內存中計算,中間結果也存儲在內存中,大大提升了速度。並且Spark不再將數據存多份,而是記錄數據如何得來,這樣當數據出錯時進行重新計算來更正。這樣看似速度慢了,可是數據出錯畢竟是一個小概率事件,重新計算的時間遠小於對所有數據進行三次備份的時間。所以Spark的整體速度比Hadoop提升了10到100倍,好厲害。

最後科普一下CPU訪問不同存儲介質的速率:直接訪問內存可以達到10GB/s,使用硬碟就嗖地降到了10MB/s,SSD比硬碟快一些(60MB/s)可是造假昂貴很多。如果使用同機架進行網路傳輸可以達到125MB/s,其實比硬碟還快呢,可是不同機架又嗖地降到了12.5MB/s。所以你看,Spark用內存,快不快?好快的。

本文整理作者:Mengying Tian,查看完整視頻:http://www.bittiger.io/classes

更多精彩內容, 請掃描下面二維碼,關注微信公眾賬號「論碼農的自我修養」

推薦閱讀:

分散式和集群區別?什麼是雲計算平台?分散式的應用場景?
除了 Hadoop 還有哪些分散式計算平台?優勢各自是什麼?
如何入門分散式計算?
DFINITY區塊鏈連載(三) - 技術FAQ

TAG:Spark | 分布式计算 |