SparkStreaming基本概述

2021-10-10 13:40:54 字數 976 閱讀 7851

原理與架構

spark streaming類似於apache storm,用於流式資料的處理。根據其官方文件介紹,spark streaming有高吞吐量和容錯能力強等特點。spark streaming支援的資料來源有很多,例如:kafka、flume、twitter、zeromq和簡單的tcp套接字等等。資料輸入後可以用spark的高度抽象操作如:map、reduce、join、window等進行運算。而結果也能儲存在很多地方,如hdfs,資料庫等。另外spark streaming也能和mllib(機器學習)以及graphx完美融合。

spark streaming 是基於spark的流式批處理引擎,其基本原理是把輸入資料以某一時間間隔批量的處理,當批處理間隔縮短到秒級時,便可以用於處理實時資料流。

對於實時性的討論,會牽涉到流式處理框架的應用場景。spark streaming將流式計算分解成多個spark job,對於每一段資料的處理都會經過spark dag圖分解以及spark的任務集的排程過程。對於目前版本的spark streaming而言,其最小的batch size的選取在0.1秒鐘之間(storm目前最小的延遲是100ms左右),所以spark streaming能夠滿足除對實時性要求非常高(如高頻實時交易)之外的所有流式準實時計算場景。

spark streaming使用「微批次」的架構,把流式計算當作一系列連續的小規模批處理來對待。spark streaming從各種輸入源中讀取資料,並把資料分組為小的批次。新的批次按均勻的時間間隔建立出來。在每個時間區間開始的時候,乙個新的批次就建立出來,在該區間內收到的資料都會被新增到這個批次中。在時間區間結束時,批次停止增長。時間區間的大小是由批次間隔這個引數決定的。批次間隔一般設在500毫秒到幾秒之間,由應用開發者配置。每個輸入批次都形成乙個rdd,以 spark 作業的方式處理並生成其他的 rdd。 處理的結果可以以批處理的方式傳給外部系統。

Spark Streaming入門詳解

背景 使用spark主要是使用spark streaming,spark streaming的魔力之所在於 1.流式處理,如今是乙個流處理時代,一切與流不相關的都是無效的資料。3.spark streaming本身是乙個程式,spark streaming在處理資料的時候會不斷感知資料。所以對構建複...

Spark Streaming 程式監控

官網中指出,spark中專門為sparkstreaming程式的監控設定了額外的途徑,當使用streamingcontext時,在web ui中會出現乙個 streaming 的選項卡,在此選項卡內,統計的內容展示如下 這其中包括接受的記錄數量,每乙個batch內處理的記錄數,處理時間,以及總共消耗...

spark streaming讀取kafka示例

spark streaming讀取kafka示例,其中 spark streaming優雅的關閉策略優化部分參考 如何管理spark streaming消費kafka的偏移量部分參考 spark向kafka中寫入資料部分參考 object demo 建立streamingcontext return...