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

資訊專欄INFORMATION COLUMN

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

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

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

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


01


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

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

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


03


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

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

04


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

注意:

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



本文作者:潘宗昊

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129640.html

相關(guān)文章

  • SparkStreaming概述

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

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

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

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

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

    guyan0319 評(píng)論0 收藏0
  • Spark 』2. spark 基本概念解析

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

    Luosunce 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<