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

資訊專欄INFORMATION COLUMN

spark Dstreams-數據源

IT那活兒 / 1464人閱讀
spark Dstreams-數據源

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


01


基本數據源


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


02


高級數據源


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


03


自定義數據源


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

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

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




本文作者:潘宗昊

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

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

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

相關文章

  • SparkStreaming概述

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

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

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

    陸斌 評論0 收藏0
  • Spark 快速入門

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

    wangshijun 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

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