[發明專利]基于Spark Streaming讀取Kafka數據的處理方法有效
| 申請號: | 201611069230.9 | 申請日: | 2016-11-29 |
| 公開(公告)號: | CN106776855B | 公開(公告)日: | 2020-03-13 |
| 發明(設計)人: | 程永新;謝濤;王仁錚 | 申請(專利權)人: | 上海輕維軟件有限公司 |
| 主分類號: | G06F16/182 | 分類號: | G06F16/182;G06F16/18;G06F16/13;G06F16/28 |
| 代理公司: | 上海科律專利代理事務所(特殊普通合伙) 31290 | 代理人: | 袁亞軍;金碎平 |
| 地址: | 200331 上海市普陀區*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 spark streaming 讀取 kafka 數據 處理 方法 | ||
本發明公開了一種基于Spark Streaming讀取Kafka數據的處理方法,包括如下步驟:S1)利用Kafka將數據存儲在話題中;S2)利用Spark Streaming把實時輸入數據流以時間片為單位切分成塊;S3)預先根據Kafka數據失敗記錄數,設置SparkStreaming補數調度時間;S4)實時監控SparkStreaming讀取Kafka數據過程;S5)通過SparkStreaming重新讀取Kafka數據。本發明根據Kafka數據失敗記錄數設置SparkStreaming補數調度時間,實時監控讀取過程并重新讀取失敗記錄數進行補數,更加靈活、便捷地做到零丟數保證。
技術領域
本發明涉及一種Kafka數據處理方法,尤其涉及一種基于Spark Streaming讀取Kafka數據的處理方法。
背景技術
Spark Streaming是將流式計算分解成一系列短小的批處理作業。這里的批處理引擎是Spark,也就是把Spark Streaming的輸入數據按照batch size(如1秒)分成一段一段的數據(Discretized Stream),每一段數據都轉換成Spark中的RDD(ResilientDistributed Dataset),然后將Spark Streaming中對DStream的Transformation操作變為針對Spark中對RDD的Transformation操作,將RDD經過操作變成中間結果保存在內存中。整個流式計算根據業務的需求可以對中間的結果進行疊加,或者存儲到外部設備。圖1顯示了Spark Streaming的整個流程。
Kafka是分布式發布-訂閱消息系統。它最初由LinkedIn公司開發,之后成為Apache項目的一部分。Kafka是一個分布式的,可劃分的,冗余備份的持久性的日志服務。它主要用于處理活躍的流式數據,如圖2所示。
眾所周知,大數據時代對數據處理的實時性、穩定性、準確性要求越來越高;現在興起的組合架構有SparkStreaming對接Kafka,借助SparkStreaming基于內存迭代計算優勢和Kafka高并發數據分發能力,進而達到數據處理的實時性;但SparkStreaming對接kafka過程中,仍然難免會出現潛在的數據丟失場景,具體過程如下:
1、兩個Exectuor已經從接收器中接收到輸入數據,并將它緩存到Exectuor的內存中;2、接收器通知輸入源數據已經接收;3、Exectuor根據應用程序的代碼開始處理已經緩存的數據;4、這時候Driver突然掛掉了;5、從設計的角度看,一旦Driver掛掉之后,它維護的Exectuor也將全部被kill;6、既然所有的Exectuor被kill了,所以緩存到它們內存中的數據也將被丟失。結果,這些已經通知數據源但是還沒有處理的緩存數據就丟失了;7、緩存的時候不可能恢復,因為它們是緩存在Exectuor的內存中,所以數據被丟失了。
由上可見,急需一種防止零丟數的方法來保證SparkStreaming對接Kafka數據處理穩定性。
發明內容
本發明所要解決的技術問題是提供一種基于Spark Streaming讀取Kafka數據的處理方法,能夠有效防止數據丟失,在失敗恢復之后從Kafka中重新消費數據,從而在SparkStreaming程序異常情況下,更加靈活、便捷地做到零丟數保證。
本發明為解決上述技術問題而采用的技術方案是提供一種基于Spark Streaming讀取Kafka數據的處理方法,包括如下步驟:S1)利用Kafka將數據存儲在話題中,每個話題均包含若干可配置數量的分區;S2)利用Spark Streaming把實時輸入數據流以時間片為單位切分成塊,每個塊均生成一個Spark Job處理;S3)
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海輕維軟件有限公司,未經上海輕維軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611069230.9/2.html,轉載請聲明來源鉆瓜專利網。





