Storm精华问答 | 为什么这么多人用Spark而不用Storm?
戳藍字“CSDN云計算”關注我們哦!
Storm被業界稱為實時版Hadoop。隨著越來越多的場景對Hadoop的MapReduce高延遲無法容忍,以及大數據實時處理解決方案的應用日趨廣泛,目前已是分布式技術領域最新爆發點,而Storm更是流計算技術中的佼佼者和主流。
1
Q:為什么這么多人用Spark而不用Storm?
A:Storm和Spark Streaming都是分布式流處理的開源框架。區別如下:
1、處理延時和吞吐量
Storm處理的是每次傳入的一個事件,Spark Streaming是處理某個時間段窗口內的事件流,Storm處理一個事件可以達到秒內的延遲,而Spark Streaming則有幾秒鐘的延遲。因此,Spark Streaming比Storm的延時更長,但是吞吐量比Storm大。
2、容錯、數據保證
Spark Streaming在容錯方面提供了對狀態計算的更好的支持。在Storm中,任一條單獨的記錄在經過系統時必須可以被追蹤到,所以Storm僅保證所有記錄都會至少處理一次,但是從錯誤中恢復過來時允許出現重復記錄。這意味著可變狀態有可能被錯誤的更新兩次。
3、支持的API
Storm(由Closure語言開發的)支持JAVA編程,Spark支持Scala編程,也支持java開發。
如果需要秒內的延遲,Storm是一個不錯的選擇,而且沒有數據丟失。如果需要有狀態的計算,而且要完全保證每個事件只被處理一次,Spark Streaming則更好。Spark Streaming編程邏輯也可能更容易,因為它類似于批處理程序(Hadoop),特別是在你使用批次(盡管是很小的)時。
Q:在一臺機器上安裝Storm客戶端,這臺客戶端會變成一臺Supervisor嗎? 客戶端與Storm集群是什么關系?因為看yaml配置里只配了nimbus,而沒有說明哪臺是Supervisor,是不是就是默認有這樣配置的都是Supervisor呢?
A:yaml是Storm配置,除去配置的nimbus角色,所有機器,只要選擇啟動supervisor,就可以作為supervisor,安裝客戶端成功后,角色是根據是否啟動角色選項決定的。
Q:這兩天一直在玩storm,在本地運行起來了,可是一旦切換到集群環境,所有的寫操作都無法完成,無論是通過socket還是文件讀寫還是數據庫讀寫,到最后提交到集群后,運行起來都會出現
filename not matched: resources/** kill 10936: 沒有那個進程這樣的錯誤,我知道提交到集群環境后由于寫操作不在一個節點上了,所以難免會出現問題,那么,Storm最后的數據應該怎樣保存下來呢?
A:Storm數據保存有很多種方式,可以保存MySQL,保存HBase都可以;這個需要自己編寫bolt來做實現;或者通過相關的插件做實現。
Q:Storm啟動出現錯誤,錯誤描述為:org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts ["192.168.226.13"]. Did you specify a valid list of nimbus hosts for config nimbus.seeds?
這如何解決?
A:出現這種錯誤有兩種情況:
第一種情況:在storm的配置文件中配置一下nimbus.seeds: ["localhost"]。(如果確保這個配置沒有問題,可以進行第二種情況的修改了)。
第二種情況:在zookeeper中找到/storm節點,使用rmr將storm節點刪除,即可恢復正常。
Q:Storm 怎么處理重復的tuple?
A:因為Storm 要保證tuple 的可靠處理,當tuple 處理失敗或者超時的時候,spout 會fail并重新發送該tuple,那么就會有tuple 重復計算的問題。這個問題是很難解決的,storm也沒有提供機制幫助你解決。不過也有一些可行的策略:
(1)不處理,這也算是種策略。因為實時計算通常并不要求很高的精確度,后
續的批處理計算會更正實時計算的誤差。
(2)使用第三方集中存儲來過濾,比如利用MySQL、MemCached 或者Redis 根據邏輯主鍵來去重。
(3)使用bloom filter 做過濾,簡單高效。
---------------- ?完? --------------
小伙伴們沖鴨,后臺留言區等著你!
關于Storm,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
---------------- ?完? --------------
1.微信群:
添加小編微信:color_ld,備注“進群+姓名+公司職位”即可,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2.征稿:
投稿郵箱:liudan@csdn.net;微信號:color_ld。請備注投稿+姓名+公司職位。
推薦閱讀
Gartner的預言:通向混合IT之旅
崩潰!新浪程序員加班錯失 77 萬年會大獎
剛剛!華為又被美國盯上了!
阿里“菜鳥”AI?
以太坊升級的拖油瓶,竟只是這幾行代碼
程序員有話說 | 程序猿在乘地鐵的時候都在想什么?
清華北大“世界排名斷崖式下跌”?
點擊“閱讀原文”,打開 CSDN App 閱讀更貼心!
總結
以上是生活随笔為你收集整理的Storm精华问答 | 为什么这么多人用Spark而不用Storm?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 割鹿刀到底是什么刀?有什么来历?
- 下一篇: 黄埔军校总共有几期?