大數據Spark與Storm技術選型

来源:https://www.cnblogs.com/Javame/archive/2018/09/10/9617154.html
-Advertisement-
Play Games

先做一個對比: 對比點 Storm Spark Streaming 實時計算模型 純實時,來一條數據,處理一條數據 準實時,對一個時間段內的數據收集起來,作為一個RDD,再處理 實時計算延遲度 毫秒級 秒級 吞吐量 低 高 事務機制 支持完善 支持,但不夠完善 健壯性 / 容錯性 ZooKeeper ...


先做一個對比:

 

對比點

Storm

Spark Streaming

實時計算模型

純實時,來一條數據,處理一條數據

準實時,對一個時間段內的數據收集起來,作為一個RDD,再處理

實時計算延遲度

毫秒級

秒級

吞吐量

事務機制

支持完善

支持,但不夠完善

健壯性 / 容錯性

ZooKeeper,Acker,非常強

Checkpoint,WAL,一般

動態調整並行度

支持

不支持

 

再來說說Spark Streaming與Storm的應用場景

 

先說一下Storm:


1、建議在那種需要純實時,不能忍受1秒以上延遲的場景下使用,比如實時金融系統,要求純實時進行金融交易和分析
2、此外,如果對於實時計算的功能中,要求可靠的事務機制和可靠性機制,即數據的處理完全精準,一條也不能多,一條也不能少,也可以考慮使用Storm
3、如果還需要針對高峰低峰時間段,動態調整實時計算程式的並行度,以最大限度利用集群資源(通常是在小型公司,集群資源緊張的情況),也可以考慮用Storm
4、如果一個大數據應用系統,它就是純粹的實時計算,不需要在中間執行SQL互動式查詢、複雜的transformation運算元等,那麼用Storm是比較好的選擇

Spark 呢:


1、如果對上述適用於Storm的三點,一條都不滿足的實時場景,即,不要求純實時,不要求強大可靠的事務機制,不要求動態調整並行度,那麼可以考慮使用Spark Streaming
2、考慮使用Spark Streaming最主要的一個因素,應該是針對整個項目進行巨集觀的考慮,即,如果一個項目除了實時計算之外,還包括了離線批處理、互動式查詢等業務功能,而且實時計算中,可能還會牽扯到高延遲批處理、互動式查詢等功能,那麼就應該首選Spark生態,用Spark Core開發離線批處理,用Spark SQL開發互動式查詢,用Spark Streaming開發實時計算,三者可以無縫整合,給系統提供非常高的可擴展性

 

 Spark Streaming與Storm的優劣分析

 

事實上,Spark Streaming絕對談不上比Storm優秀。這兩個框架在實時計算領域中,都很優秀,只是擅長的細分場景並不相同。

Spark Streaming僅僅在吞吐量上比Storm要優秀,而吞吐量這一點,也是歷來挺Spark Streaming,貶Storm的人著重強調的。但是問題是,是不是在所有的實時計算場景下,都那麼註重吞吐量?不盡然。因此,通過吞吐量說Spark Streaming強於Storm,不靠譜。

事實上,Storm在實時延遲度上,比Spark Streaming就好多了,前者是純實時,後者是準實時。而且,Storm的事務機制、健壯性 / 容錯性、動態調整並行度等特性,都要比Spark Streaming更加優秀。

Spark Streaming,有一點是Storm絕對比不上的,就是:它位於Spark生態技術棧中,因此Spark Streaming可以和Spark Core、Spark SQL無縫整合,也就意味著,我們可以對實時處理出來的中間數據,立即在程式中無縫進行延遲批處理、互動式查詢等操作。這個特點大大增強了Spark Streaming的優勢和功能。

推薦閱讀:

Kafka 入門教程

你可以不懂但一定要知道的代碼審查 Code Review

ELK Stack 實戰教程

filebeat+kafka+strom+logstash+es 輿情採集系統

安全漏洞掃描,風險原因分析及解決方案

微信公眾號:

 


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

-Advertisement-
Play Games
更多相關文章
  • 前端火熱的框架層出不窮,作為碼農的我們,依舊需要去學習,去探索新的問題,學習新技術,其實就是為了寫一手好的,自認為是高質量的代碼。今天主要分享一下前端最火的框架vue,也是我比較喜歡的框架。 vue上手可以說是比較輕鬆而且簡單,如果你用過angular,react,你也會很喜歡vue。vue的核心思 ...
  • css實現單行文本溢出顯示 ... 直接上效果:相對於多行文本溢出做處理, 單行要簡單多,且更容易理解。 實現多行文本溢出顯示... 方法: 因使用了WebKit的CSS擴展屬性,該方法適用於WebKit瀏覽器及移動端; -webkit-line-clamp用來限制在一個塊元素顯示的文本的行數。 為 ...
  • 使用Canvas路徑畫圖需要註意方向,畫圖方向是順時針還是逆時針需要記住。下麵讓我們看看Canvas常見路徑方向。 arc 參數值 參數 | 描述 | x | 圓的中心的 x 坐標。 y | 圓的中心的 y 坐標。 r | 圓的半徑。 sAngle | 起始角,以弧度計。(弧的圓形的三點鐘位置是 0 ...
  • 引用: JavaScript Cookie - by runoob.com Cookie是儲存在電腦文本文件中的數據,用於保存訪問者的信息,並可以在下次打開頁面時引用。 頁面在設置/引用訪問者信息時,需要在JavaScript中對Cookie進行設置,獲取和檢索三個函數。 例如當訪問者首次訪問網頁時 ...
  • nodejs 簡單的封裝一些mysql模塊 實現一個方法根據不同傳參進行增刪改查 首先要 npm install mysql 代碼如下 傳入參數如下 objHost 資料庫的基本信息如下 sql 就是sql語句 添加 修改 刪除 查找 callback回調 操作完成後拿到數據的回調 add 在添加時 ...
  • JavaScript有兩種數據類型,基礎數據類型和引用數據類型。基礎數據類型都是按值訪問的,我們可以直接操作保存在變數中的實際的值。而引用類型如Array,我們不能直接操作對象的堆記憶體空間。引用類型的值都是按引用訪問的,即保存在變數對象中的一個地址,該地址與堆記憶體的實際值相關聯。 一、深拷貝和淺拷貝 ...
  • 閱讀目錄 為什麼需要事務 事務的來源 分散式系統中的事務問題 分散式事務的解決方案 結語 暫時還未涉及的園友們,可以收藏防身哦~ 為什麼需要事務 事務的來源 分散式系統中的事務問題 分散式事務的解決方案 結語 暫時還未涉及的園友們,可以收藏防身哦~ 為什麼需要事務 事務的來源 分散式系統中的事務問題 ...
  • 一、引言 .Net技術棧目前還沒有像spring cloud相對完整一整微服務架構棧,隨著業務發展系統架構演進,自行構建.Net技術體系的微服務架構,配套相關核心組件。因平臺基於微服務架構方式研發,每個領域服務遵循平臺統一標準,各自研發,獨立部署運行,服務運行日誌均通過記錄本地文件方式進行記錄。程式 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...