淺談Spark的特點:與hadoop,storm,flink的區別

本文淺談一下自己對於spark的理解,並沒有什麼新東西,大牛可以繞道。剛入行的新手可以看看,尤其面試的時候經常會問到。
首先對Spark下一個定義吧,其實Spark就是一個微批處理的大數據計算框架,跟hadoop中的MapReduce一個性質。而區別在於,1.MapReduce只能做離線處理,也就是批處理,而spark即可以做離線處理也可以做實時處理,但值得一提的是,spark的實時處理實際上是一個微批處理,storm是一個真正的的流式處理,就是數據來一條處理一條,但是storm卻在大流量方面表現的不盡人意,但spark就沒有這個問題,spark的實質是把流式處理轉化爲一個個小的批處理,所以又叫微批處理。相對於storm,spark對於大流量更穩定一些;2.MapReduce是基於磁盤計算的,雖然shuffle階段會有一個基於內存的環形緩衝區,但是無論數據量的多少,最終shuffle階段的結果還是會寫到磁盤上的。而spark是基於內存計算的,這樣大大增加了spark的計算能力,但是隨着數據量的增多,尤其在沒有條件限制下就進行shuffle,往往可能會造成oom異常,這就要考這個時候就是考驗程序員功底的時候,即要在內存最大限度使用下的同時避免oom異常,這裏不過多敘述;3.MapReduce是進程計算,spark是線程;4.spark具有豐富的算子,多達80多種,而MapReduce只有兩種map和reduce,對於複雜的業務需要進行大量的開發才能滿足需求。
毫無疑問作爲第一代開源的大數據計算框架,MapReduce有着劃時代的意義,即便現在也是有一些傳統公司在使用着MapReduce,但顯然這個是在硬件不夠發達時代的產物,而storm雖然做出了不少改進,但是storm對於真正的大流量還是不太穩定,而spark創造性的流批一體,不得不說是目前爲止企業很好的選擇,而flink雖然現在如火如荼,而且有阿里這樣頂尖的公司在去用,這本身就是一個很好的廣告牌,但值得注意的flink畢竟太新,其風險不可預知,自己公司如果沒有大牛最好不要嘗試。
做個總結吧,目前來說個人認爲對於一般中小型企業,spark在大數據計算框架裏是一個很好的選擇。

 


版權聲明:本文爲CSDN博主「Bruce_1205」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_44570919/article/details/91354818

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章