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

資訊專欄INFORMATION COLUMN

spark Dstreams-數(shù)據(jù)源

IT那活兒 / 1471人閱讀
spark Dstreams-數(shù)據(jù)源

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


01


基本數(shù)據(jù)源


1.1 文件數(shù)據(jù)源
Spark Streaming會監(jiān)控你指定的目錄下的任何文件。
  • 一個目錄會被監(jiān)控,像hdfs://namenode:8040/logs,目錄中的所有文件會被發(fā)現(xiàn)并處理。
  • 全局模式應用,像hdfs://namenode:8040/logs/2017/*,這樣spark streaming會監(jiān)控所有匹配的目錄下的文件。
  • 所有文件必須是相同格式文件。
  • 文件會被當作時間段的一部分根據(jù)修改時間而不是創(chuàng)建時間。
  • 文件被讀取處理后,如果對文件又進行了修改,不會導致spark streaming重新讀取文件,即忽略更新。
  • 就算沒有修改任何文件,目錄下文件數(shù)量越多,掃描的時間就越長。
  • 如果使用通配符標識監(jiān)控目錄,重命名目錄名稱以匹配通配符,只有目錄中修改時間當前窗口內(nèi)的文件才會包含在流中。
  • 調(diào)用FileSystem.setTimes()來修復時間戳是在以后的窗口中攝取文件的一種方法,盡管其內(nèi)容未修改。
1.2 對象存儲數(shù)據(jù)源
文件系統(tǒng)(像HDFS)傾向于在創(chuàng)建輸出流后立即對其文件設置修改時間,當文件打開時,數(shù)據(jù)被完全寫入之前,他可能會被包括在數(shù)據(jù)流中,之后再對文件的更新將被忽略,也就是說更新可能會丟失數(shù)據(jù)。
要保證在窗口中獲取更新,請將文件寫入未被監(jiān)控的目錄,然后再輸出流關閉后立即將其重名為目標目錄, 則將攝取新數(shù)據(jù)。
對比之下,對象存儲(例如S3,Azure)通常具有緩慢的重命名操作,因為數(shù)據(jù)實際上是復制的,此外,重命名的對象可能將rename()操作的時間作為其修改時間,因此可能不會被視為原始創(chuàng)建時間所暗示的窗口的一部分。
需要對目標對象存儲進行仔細測試,以驗證存儲的時間戳行為是否與saprk streaming所預期的一致,直接寫入目標目錄可能是通過所選對象存儲進行數(shù)據(jù)流傳輸?shù)暮线m策略。
1.3 通過RDD創(chuàng)建DStream
為了用于測試,用戶可以通過一系列RDD創(chuàng)建DStream,每一個加入到隊列中的RDD將會被看成是DStream的a batch。


02


高級數(shù)據(jù)源


類源需要與外部非Spark庫接口,其中一些庫具有復雜的依賴關系(例如Kafka)。
因此,為了盡量減少與依賴項的版本沖突相關的問題,從這些源創(chuàng)建數(shù)據(jù)流的功能已轉(zhuǎn)移到多帶帶的庫中,必要時可以顯式鏈接到這些庫。
請注意,Spark shell中沒有這些高級源,因此無法在shell中測試基于這些高級源的應用程序。如果您真的想在Spark shell中使用它們,那么您必須下載相應的Maven工件的JAR及其依賴項,并將其添加到類路徑中。


03


自定義數(shù)據(jù)源


可以從自定義數(shù)據(jù)源中創(chuàng)建輸入數(shù)據(jù)流。您所要做的就是實現(xiàn)一個用戶定義的接收器(receiver ),它可以從自定義源接收數(shù)據(jù)并將其推入Spark。
3.1 實現(xiàn)自定義接收器
自定義接收器必須實現(xiàn)Receiver類并實現(xiàn)其兩個方法:
  • onStart():開始接收數(shù)據(jù)需要做的事情;

  • onStop():停止接收數(shù)據(jù)需要做的事情。

onStart()、onStop()都不能無限期阻塞,通常的,onStart()將啟動負責接收數(shù)據(jù)的線程,onStop()將確保停止接收數(shù)據(jù)的線程,接收數(shù)據(jù)線程還可以使用isStopped()來檢查他們是否應該停止接收數(shù)據(jù)。
一旦接收到數(shù)據(jù)就可以調(diào)用store()方法將數(shù)據(jù)存儲在spark中,store(data)是Receiver提供的一種方法,store()有多種風格,允許一次存儲一條接收到的數(shù)據(jù)記錄,或作為對象/序列化字節(jié)的整個集合。
請注意,用于實現(xiàn)接收器的store()的風格會影響其可靠性和容錯語義。應捕獲并正確處理接收線程中的任何異常,以避免接收器的無聲故障。restart()將通過異步調(diào)用onStop()然后在延遲后調(diào)用onStart()來重新啟動接收器。stop()將調(diào)用onStop()并終止接收器。
此外,reportError()會向驅(qū)動程序報告錯誤消息(在日志和UI中可見),而無需停止/重新啟動接收器。
以下是通過套接字接收文本流的自定義接收器。它將文本流中的“ ”分隔行視為記錄,并使用Spark存儲它們。如果接收線程在連接或接收時出錯,則重新啟動接收器以再次嘗試連接。
在spark streaming中使用自定義Receiver:
3.2 接收器可靠性
正如Spark Streaming編程指南中簡要討論的,基于可靠性和容錯語義,有兩種接收器:
  • 可靠接收器-對于允許確認發(fā)送數(shù)據(jù)的可靠源,可靠接收器正確地向源確認數(shù)據(jù)已可靠地接收并存儲在Spark中(即成功復制)。通常,實現(xiàn)此接收器需要仔細考慮源確認的語義。
  • 不可靠接收器-不可靠接收器不向源發(fā)送確認。
要實現(xiàn)可靠的接收器,必須使用存儲(多條記錄)來存儲數(shù)據(jù)。這種風格的存儲是一個阻塞調(diào)用,只有在所有給定的記錄都存儲在Spark中之后才會返回。如果接收器配置的存儲級別使用復制(默認情況下已啟用),則此調(diào)用將在復制完成后返回。因此,它確保數(shù)據(jù)被可靠地存儲,并且接收器現(xiàn)在可以適當?shù)卮_認源。這確保當接收器在復制數(shù)據(jù)中間失敗時,沒有數(shù)據(jù)丟失——緩沖的數(shù)據(jù)將不被確認。
不可靠的接收器不必實現(xiàn)任何這種邏輯。它可以簡單地從源接收記錄,并使用store(single record)一次插入一條記錄。雖然它沒有得到存儲(多個記錄)的可靠性保證,但是更容易實現(xiàn)。
下表總結了這兩種接收機的特性:




本文作者:潘宗昊

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

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

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

相關文章

  • SparkStreaming概述

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

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

    摘要:輸入和接收器輸入代表從某種流式數(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
  • Spark 快速入門

    摘要:數(shù)據(jù)科學任務主要是數(shù)據(jù)分析領域,數(shù)據(jù)科學家要負責分析數(shù)據(jù)并建模,具備統(tǒng)計預測建模機器學習等方面的經(jīng)驗,以及一定的使用或語言進行編程的能力。監(jiān)控運行時性能指標信息。 Spark Spark 背景 什么是 Spark 官網(wǎng):http://spark.apache.org Spark是一種快速、通用、可擴展的大數(shù)據(jù)分析引擎,2009年誕生于加州大學伯克利分校AMPLab,2010年開源,20...

    wangshijun 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

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