国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spark Dstreams-基本內容

IT那活兒 / 1496人閱讀
spark Dstreams-基本內容

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!

簡  介
Spark Streaming是spark core的延伸,支持實時數據流的可伸縮、高吞吐量、容錯機制,支持的數據源有kafka、Kinesis、TCP等),且可以使用復雜的算法(map,reduce,join,window等)處理數據,最后可以將處理后的數據推送到文件系統、數據庫或儀表盤。如下圖您也可以再數據流上應用spark的機器學習和圖形算法。 )


01


在內部,spark streaming接受實時數據流并且將數據流切割成一個個的小批次,然后由spark引擎進行處理,以批量生成最終結果流。

Spark streaming提供一個高級抽象叫做離散化數據流Dstreams,他代表一個連續的數據流,可以從kafka,kinesis等源輸入創建數據流,也可以通過對其他數據流應用高級操作來創建數據流。

在內部,一個Dstreams代表一系列的RDD。


02


具體步驟:
批處理間隔必須根據應用程序和可用集群資源進行設置,ssc也可以通過SparkContext創建:
val ssc = new StreamingContext(sc, Seconds(1))
創建ssc之后,按照下面步驟進行:
  1. 通過輸入數據源創建Dstreams。
  2. 對數據流進行轉換和輸出操作。
  3. 使用ssc.start()啟動應用程序。
  4. 使用ssc.awaitTermination()等待停止處理。(手動或由于任何錯誤)
  5. 使用ssc.stop()手動停止應用程序。
舉例演示:
使用spark-streaming前提是添加依賴:
如果數據源為kafka,由于spark core中無kafka依賴,需要額外添加依賴:
StreamingContext是流功能的入口,我們創建一個本地StreamingContext,兩個執行線程,批處理間隔為1秒。
val conf = new SparkConf().setMaster("local[2]").setAppName("Dstreams")
master是spark,Mesos,Kubernetes,或者YARN集群URL,或者本地模式運行的特殊local[*]字符串。
實際上,在集群上運行時,你不希望在程序中寫死master,而是在使用spark-submit啟動應用程序時在那里接收master。


03


離散化數據流(Dstreams)

Dstreams是spark streaming提供的基本抽象,它代表一個連續的數據流,不管是輸入源創建的Dsteam還是通過轉換生成的輸入流,在內部Dstream代表一系列連續的RDD,每個RDD都是特定時間間隔的數據。
應用于數據流的任何操作都轉化為底層RDD的操作,例如在之前的例子中,對用數據流中每個RDD應用flatMap操作,如圖:
這些底層RDD轉換由spark引擎計算,Dstream操作隱藏了大部分這些細節,并為開發人員提供了更高級別的API。

04


輸入數據流(Input Dstreams)表示從源接受的輸入數據流。
在上面的例子中,lines就是輸入數據流(Input DStreams),代表從TCP socket接收的數據。
每個輸入數據流(Input DStreams)除了文件流都與接收器對象關聯,該對象從源接受的數據并將其在spark的內存中進行處理。
Spark streaming提供兩類內置streaming源:
  1. 基本source:在StreamingContext中可以直接用的基本source,像file source,socket source。
  2. 高級source:像kafka,Kinesis等,需要添加額外依賴。

注意:

  1. 一旦StreamingContext啟動,就不能設置或添加新的流計算。
  2. StreamingContext一旦停止就不能重啟。
  3. 一個JVM中只能同時只能有一個StreamingContext,ssc.stop()也會停止SparkContext,如果僅停止streamingContext,需要ssc.stop(false)。
  4. 只要在創建下一個StreamingContext之前停止上一個StreamingContext而不停止SparkContext,就可以重新用于創建StreamingContetx。
  5. 如果希望在應用程序中并行接受多個數據流,則可以創建多個輸入數據流,這將同時創建接受多個輸入數據流的多個接收器,Spark worker/executor是一個長期運行的任務,因此它占用分配給Spark流應用程序的一個核心。
    因此,務必記住,Spark Streaming應用程序需要分配足夠的內核(或線程,如果在本地運行)來處理接收到的數據,以及運行接收器。
  6. 在本地運行spark streaming應用程序時,不要將master設置成local[1]或local,這兩種情況意味著只有一個線程用于本地運行任務,如果您使用的是基于接收器的輸入數據流(例如套接字,kafka等),則使用單個線程運行接收器,就沒有其他線程處理數據了。
  7. 在集群上運行時,分配給spark streaming應用程序的內核數必須大于接收器數,否則應用只能接受數據而無法處理數據。



本文作者:潘宗昊

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129640.html

相關文章

  • SparkStreaming概述

    摘要:但在企業中存在很多實時性處理的需求,例如雙十一的京東阿里,通常會做一個實時的數據大屏,顯示實時訂單。這種情況下,對數據實時性要求較高,僅僅能夠容忍到延遲分鐘或幾秒鐘。1 Spark Streaming是什么它是一個可擴展,高吞吐具有容錯性的流式計算框架吞吐量:單位時間內成功傳輸數據的數量之前我們接觸的spark-core和spark-sql都是處理屬于離線批處理任務,數據一般都是在固定位置上...

    Tecode 評論0 收藏0
  • Spark Streaming學習筆記

    摘要:輸入和接收器輸入代表從某種流式數據源流入的數據流。文件數據流可以從任何兼容包括等的文件系統,創建方式如下將監視該目錄,并處理該目錄下任何新建的文件目前還不支持嵌套目錄。會被一個個依次推入隊列,而則會依次以數據流形式處理這些的數據。 特點: Spark Streaming能夠實現對實時數據流的流式處理,并具有很好的可擴展性、高吞吐量和容錯性。 Spark Streaming支持從多種數...

    陸斌 評論0 收藏0
  • 大數據入門指南(GitHub開源項目)

    摘要:項目地址前言大數據技術棧思維導圖大數據常用軟件安裝指南一分布式文件存儲系統分布式計算框架集群資源管理器單機偽集群環境搭建集群環境搭建常用命令的使用基于搭建高可用集群二簡介及核心概念環境下的安裝部署和命令行的基本使用常用操作分區表和分桶表視圖 項目GitHub地址:https://github.com/heibaiying... 前 言 大數據技術棧思維導圖 大數據常用軟件安裝指...

    guyan0319 評論0 收藏0
  • Spark 』2. spark 基本概念解析

    摘要:原文基本概念解析寫在前面本系列是綜合了自己在學習過程中的理解記錄對參考文章中的一些理解個人實踐過程中的一些心得而來。是項目組設計用來表示數據集的一種數據結構。 原文:『 Spark 』2. spark 基本概念解析 寫在前面 本系列是綜合了自己在學習spark過程中的理解記錄 + 對參考文章中的一些理解 + 個人實踐spark過程中的一些心得而來。寫這樣一個系列僅僅是為了梳理個人學習...

    Luosunce 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<