大數據Storm相比於Spark、Hadoop有哪些優勢(摘錄)

来源:https://www.cnblogs.com/fenghuo9527/archive/2018/08/06/9432187.html
-Advertisement-
Play Games

一、可能很多初學大數據的伙伴不知道strom是什麼,先給大家介紹一下strom: 分散式實時計算系統,storm對於實時計算的意義類似於hadoop對於批處理的意義。 storm的適用場景。 流數據處理。Storm可以用來處理源源不斷流進來的消息,處理之後將結果寫入到某個存儲中去。 分散式rpc。由 ...


一、可能很多初學大數據的伙伴不知道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類似,這對於我們開發和測試來說非常有用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 亂碼產生的原因: 電腦中儲存的信息都是用二進位數表示的;而我們在屏幕上看到的英文、漢字等字元是二進位數轉換之後的結果。通俗的說,按照何種規則將字元存儲在電腦中,如'a'用什麼表示,稱為"編碼";反之,將存儲在電腦中的二進位數解析顯示出來,稱為"解碼",如同密碼學中的加密和解密。在解碼過程中,如 ...
  • Iptables防火牆規則使用梳理 iptables是組成Linux平臺下的包過濾防火牆,與大多數的Linux軟體一樣,這個包過濾防火牆是免費的,它可以代替昂貴的商業防火牆解決方案,完成封包過濾、封包重定向和網路地址轉換(NAT)等功能。在日常Linux運維工作中,經常會設置iptables防火牆規 ...
  • 一、前言 我們在項目開發過程中,很多時候會出現由於某種原因經常會導致手機系統死機重啟的情況(重啟分Android重啟跟kernel重啟,而我們這裡只討論kernel重啟也就是 kernel panic 的情況),死機重啟基本算是影響最嚴重的系統問題了,有穩定復現的,也有概率出現的,解題難度也千差萬別 ...
  • 1. 創建163郵箱(其他郵箱同理) 2.設置授權碼 3.開啟服務 4.vim /etc/mail.rc 5. 給你的qq郵箱設置163賬號的白名 6. 發送md5結果到qq 7.無郵件正文 mail -s "主題" 收件地址 % mail -s "測試" [email protected] ...
  • 首先在電腦D盤(或者其他不是C盤的磁碟,一般軟體不會安裝到C盤,否則會拖慢電腦的運行速度,造成電腦卡頓)新建文件夾並命名,這裡命名oracle;按住Ctrl鍵,滑鼠同時選中win64_11gR2_database_1of2.zip和win64_11gR2_database_2of2.zip兩個壓縮包 ...
  • 數據類型的分類 數值型(整型、小數)、字元型、日期型,小數分為定點數和浮點數。 一、整型 註:①如果不設置無符號,預設是有符號的,如果設置為無符號的,需要添加unsigned關鍵字。 ②如果插入的數值超過整型的範圍,報out of range 異常,並插入臨界值。 ③如果不設置長度,會有預設長度。 ...
  • 1.下載 1)進入官網下載5.7.23壓縮包 下載地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 2.安裝與配置 1)將下載的壓縮包解壓到任意目錄,如: 2)在根目錄下創建my.ini配置文件 3)用記事本打開my.ini,填寫 ...
  • 占座 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...