成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spark Dstreams-基本內(nèi)容

IT那活兒 / 1498人閱讀
spark Dstreams-基本內(nèi)容

點擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!

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


01


在內(nèi)部,spark streaming接受實時數(shù)據(jù)流并且將數(shù)據(jù)流切割成一個個的小批次,然后由spark引擎進(jìn)行處理,以批量生成最終結(jié)果流。

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

在內(nèi)部,一個Dstreams代表一系列的RDD。


02


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


03


離散化數(shù)據(jù)流(Dstreams)

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

04


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

注意:

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



本文作者:潘宗昊

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129640.html

相關(guān)文章

  • SparkStreaming概述

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

    Tecode 評論0 收藏0
  • Spark Streaming學(xué)習(xí)筆記

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

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

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

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

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

    Luosunce 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

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