大資料Storm相比於Spark、Hadoop有哪些優勢(摘錄)
一、可能很多初學大資料的夥伴不知道strom是什麼,先給大家介紹一下strom:
分散式實時計算系統,storm對於實時計算的意義類似於hadoop對於批處理的意義。
storm的適用場景。
流資料處理。Storm可以用來處理源源不斷流進來的訊息,處理之後將結果寫入到某個儲存中去。
分散式rpc。由於storm的處理元件是分散式的,而且處理延遲極低,所以可以作為一個通用的分散式rpc框架來使用。當然,其實我們的搜尋引擎本身也是一個分散式rpc系統
有一句話叫做三人行必有我師,其實做為一個開發者,有一個學習的氛圍
跟一個交流圈子特別重要這是一個我的大資料交流學習群531629188
不管你是小白還是大牛歡迎入駐,正在求職的也可以加入
,大家一起交流學習,話糙理不糙,互相學習,共同進步,一起加油吧。
二、然後我們再看下Storm、Spark、 Hadoop都有何特點
Storm: 分散式實時計算,強調實時性,常用於實時性要求較高的地方;
Hadoop:分散式批處理計算,強調批處理,常用於資料探勘、分析;
Spark:是一個基於記憶體計算的開源的叢集計算系統,目的是讓資料分析更加快速, Spark 是一種與 Hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分佈資料集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。
三、strom的優勢
- 簡單程式設計
在大資料處理方面相信大家對hadoop已經耳熟能詳,基於GoogleMap/Reduce來實現的Hadoop為開發者提供了map、reduce原語,使並行批處理程式變得非常地簡單和優美。同樣,Storm也為大資料的實時計算提供了一些簡單優美的原語,這大大降低了開發並行實時處理的任務的複雜性,幫助你快速、高效的開發應用。
Spark提供的資料集操作型別有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union, join, cogroup,mapValues, sort,partionBy等多種操作型別,他們把這些操作稱為Transformations。同時還提供Count, collect, reduce, lookup, save等多種actions。這些多種多樣的資料集操作型別,給上層應用者提供了方便。各個處理節點之間的通訊模型不再像Hadoop那樣就是唯一的Data Shuffle一種模式。使用者可以命名,物化,控制中間結果的分割槽等。可以說程式設計模型比Hadoop更靈活.。 - 多語言支援
除了用java實現spout和bolt,你還可以使用任何你熟悉的程式語言來完成這項工作,這一切得益於Storm所謂的多語言協議。多語言協議是Storm內部的一種特殊協議,允許spout或者bolt使用標準輸入和標準輸出來進行訊息傳遞,傳遞的訊息為單行文字或者是json編碼的多行。
Storm支援多語言程式設計主要是通過ShellBolt,ShellSpout和ShellProcess這些類來實現的,這些類都實現了IBolt 和 ISpout介面,以及讓shell通過java的ProcessBuilder類來執行指令碼或者程式的協議。
可以看到,採用這種方式,每個tuple在處理的時候都需要進行json的編解碼,因此在吞吐量上會有較大影響。 - 支援水平擴充套件
在Storm叢集中真正執行topology的主要有三個實體:工作程式、執行緒和任務。Storm叢集中的每臺機器上都可以執行多個工作程式,每個工作程式又可建立多個執行緒,每個執行緒可以執行多個任務,任務是真正進行資料處理的實體,我們開發的spout、bolt就是作為一個或者多個任務的方式執行的。
因此,計算任務在多個執行緒、程式和伺服器之間並行進行,支援靈活的水平擴充套件。 - 容錯性強
如果在訊息處理過程中出了一些異常,Storm會重新安排這個出問題的處理單元。Storm保證一個處理單元永遠執行(除非你顯式殺掉這個處理單元)。 - 可靠的訊息保證
Storm可以保證spout發出的每條訊息都能被“完全處理”,這也是直接區別於其他實時系統的地方,如S4。 - 快速的訊息處理
用ZeroMQ作為底層訊息佇列, 保證訊息能快速被處理 - 本地模式,支援快速程式設計測試
Storm有一種“本地模式”,也就是在程式中模擬一個Storm叢集的所有功能,以本地模式執行topology跟在叢集上執行topology類似,這對於我們開發和測試來說非常有用。
相關文章
- Spark與Hadoop MapReduce相比,有哪些優點你知道嗎?SparkHadoop
- 大資料框架對比 - Hadoop、Spark、Storm、Samza、Spark、Flink大資料框架HadoopSparkORM
- Redis相比Memcached有哪些優勢?Redis
- Hadoop大資料平臺有何優勢?Hadoop大資料
- 大資料渠道有哪些優勢大資料
- 大資料視覺化有哪些優勢大資料視覺化
- 大資料視覺化有哪些優勢呢?大資料視覺化
- 大資料分析的優勢有哪些特點大資料
- 大資料視覺化平臺有哪些優勢大資料視覺化
- 大資料技術特點及優勢有哪些大資料
- 分享Hadoop處理大資料工具及優勢Hadoop大資料
- 谷歌的grpc和facebook的相比thrift 有哪些優勢,又有哪些缺點?谷歌RPC
- 基於雲的MES與本地MES相比有什麼優勢?
- 相比較傳統遊戲而言,鏈遊的優勢之處有哪些?遊戲
- 與IPv4相比,IPv6具有哪些優勢?
- Storm大資料位置ORM大資料
- 大資料ELK有什麼優勢呢?大資料
- 大資料技術有什麼優勢大資料
- Python做資料分析有哪些優勢?原因竟是它!Python
- 《Hadoop+Spark大資料分析實戰》簡介HadoopSpark大資料
- DevSecOps優勢有哪些dev
- BlueHost站群伺服器相比其它伺服器的優勢有哪些伺服器
- 在Hadoop環境中,大資料儲存的技巧有哪些?Hadoop大資料
- 每週一書《Spark與Hadoop大資料分析》分享!SparkHadoop大資料
- 容器雲有哪些特點?有哪些優勢?
- 學Python有哪些優勢Python
- 資料演算法 Hadoop/Spark大資料處理---第十六章演算法HadoopSpark大資料
- 用Python做資料分析有哪些優勢?Python學習分享!Python
- YottaChain區塊鏈資料儲存技術有哪些優勢?AI區塊鏈
- 大資料的優缺點有哪些?_光點科技大資料
- Linux與windows相比有何優勢,看完就明白了LinuxWindows
- 大資料學習,大資料發展趨勢和Spark介紹大資料Spark
- 美國大頻寬伺服器有哪些優勢?伺服器
- 旅遊業利用大資料分析解決方案的優勢有哪些呢?_光點科技大資料
- 資料演算法 Hadoop/Spark大資料處理---第十二章演算法HadoopSpark大資料
- 獨享代理IP優勢有哪些?獨享代理IP三大優勢介紹
- 學習Python有哪些優勢Python
- 獨享ip有哪些優勢?