精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Kafka和Druid了解Spark流

大數據 Kafka Spark
在本博文中,我將分享通過將Spark Streaming,Kafka和Apache Druid結合在一起以構建實時分析儀表板,以確保精確的數據表示而獲得的知識。

[[326057]]

作為一名數據工程師,我正在研究大數據技術,例如Spark Streaming,Kafka和Apache Druid。 他們都有自己的教程和RTFM頁面。 但是,將這些技術大規模地組合在一起時,您會發現自己正在尋找涵蓋更復雜的生產用例的解決方案。 在本博文中,我將分享通過將Spark Streaming,Kafka和Apache Druid結合在一起以構建實時分析儀表板,以確保精確的數據表示而獲得的知識。

在開始之前……關于實時分析的幾句話

實時分析是大數據技術的新趨勢,通常具有顯著的業務影響。 在分析新鮮數據時,見解更加精確。 例如,為數據分析師,BI和客戶經理團隊提供實時分析儀表板可以幫助這些團隊做出快速決策。 大規模實時分析的常用架構基于Spark Streaming和Kafka。 這兩種技術都具有很好的可擴展性。 它們在群集上運行,并在許多計算機之間分配負載。 Spark作業的輸出可以到達許多不同的目的地,這取決于特定的用例和體系結構。 我們的目標是提供顯示實時事件的可視工具。 為此,我們選擇了Apache Druid數據庫。

Apache Druid中的數據可視化

Druid是高性能的實時分析數據庫。 它的好處之一是能夠使用來自Kafka主題的實時數據,并使用Pivot模塊在其上構建強大的可視化效果。 它的可視化功能可以運行各種臨時的"切片和切塊"查詢,并快速獲得可視化結果。 這對于分析各種用例非常有用,例如特定運動在某些國家的表現。 實時檢索數據,延遲1-2分鐘。

架構

因此,我們決定基于Kafka事件和Apache Druid構建實時分析系統。 我們已經在Kafka主題中進行過活動。 但是我們不能將它們直接攝取到德魯伊中。 我們需要為每個事件添加更多維度。 我們需要用更多的數據豐富每個事件,以便在德魯伊中方便地查看它。 關于規模,我們每分鐘要處理數十萬個事件,因此我們需要使用能夠支持這些數字的技術。 我們決定使用Spark Streaming作業豐富原始的Kafka事件。

 

使用Kafka和Druid了解Spark流
圖1.實時分析架構

Spark Streaming作業永遠運行? 并不是的。

Spark Streaming作業的想法是它始終在運行。 這項工作永遠都不應停止。 它不斷讀取來自Kafka主題的事件,對其進行處理,并將輸出寫入另一個Kafka主題。 但是,這是一個樂觀的看法。 在現實生活中,事情更加復雜。 Spark群集中存在驅動程序故障,在這種情況下,作業將重新啟動。 有時新版本的spark應用程序已部署到生產中。 在這種情況下會發生什么? 重新啟動的作業如何讀取Kafka主題并處理事件? 在深入研究這些細節之前,此圖顯示了重新啟動Spark Streaming作業時在Druid中看到的內容:

 

使用Kafka和Druid了解Spark流
圖2.作業重新啟動時數據丟失

絕對是數據丟失!

我們要解決什么問題?

我們正在處理Spark Streaming應用程序,該應用程序從一個Kafka主題讀取事件,并將事件寫入另一個Kafka主題。 這些事件稍后將在Druid中顯示。 我們的目標是在重新啟動Spark Streaming應用程序期間實現平滑的數據可視化。 換句話說,我們需要確保在Spark Streaming作業重啟期間不會丟失或重復任何事件。

都是關于補償

為了理解為什么作業重新啟動時會丟失數據,我們需要熟悉Kafka體系結構中的一些術語。 您可以在這里找到Kafka的官方文檔。 簡而言之:Kafka中的事件存儲在主題中; 每個主題都分為多個分區。 分區中的每個記錄都有一個偏移量-一個連續的數字,它定義了記錄的順序。 當應用程序使用該主題時,它可以通過多種方式處理偏移量。 默認行為始終是從最新的偏移量讀取。 另一個選擇是提交偏移量,即持久保留偏移量,以便作業可以在重新啟動時讀取已提交的偏移量并從此處繼續。 讓我們看一下解決方案的步驟,并在每個步驟中加深對Kafka膠印管理的了解。

步驟#1-自動提交偏移量

默認行為始終是從最新的偏移量讀取。 這將不起作用,因為重新啟動作業時,該主題中有新事件。 如果作業從最新讀取,它將丟失重新啟動期間添加的所有消息,如圖2所示。Spark Streaming中有一個" enable.auto.commit"參數。 默認情況下,其值為false。 圖3顯示了將其值更改為true,運行Spark應用程序并重新啟動后的行為。

 

使用Kafka和Druid了解Spark流
圖3.作業重啟的數據峰值

我們可以看到,使用Kafka自動提交功能會產生新的效果。 沒有"數據丟失",但是現在我們看到重復的事件。 沒有真正的事件"爆發"。 實際發生的情況是自動提交機制"不時"提交偏移量。 輸出主題中有許多未提交的消息。 重新啟動后,作業將使用最新提交的偏移量中的消息,并再次處理其中一些事件。 這就是為什么在輸出中會出現大量事件的原因。

顯然,將這些重復項合并到我們的可視化中可能會誤導業務消費者此數據,并影響他們的決策和對系統的信任。

步驟#2:手動提交Kafka偏移

因此,我們不能依靠Kafka自動提交功能。 我們需要自己進行卡夫卡補償。 為了做到這一點,讓我們看看Spark Streaming如何使用Kafka主題中的數據。 Spark Streaming使用稱為離散流或DStream的體系結構。 DStream由一系列連續的RDD(彈性分布式數據集)表示,這是Spark的主要抽象之一。 大多數Spark Streaming作業如下所示:

  1. dstream.foreachRDD { rdd => rdd.foreach { record => process(record)} } 

在我們的案例中,處理記錄意味著將記錄寫入輸出Kafka主題。 因此,為了提交Kafka偏移量,我們需要執行以下操作:

  1. dstream.foreachRDD { rdd => val offsetRanges =  
  2. rdd.asInstanceOf[HasOffsetRanges].offsetRanges rdd.foreach { record  
  3. => process(record)}  
  4. stream.asInstanceOf[CanCommitOffsets].commitAsync(offsetRanges) } 

這是一種簡單明了的方法,在我們深入討論之前,讓我們看一下大局。 假設我們正確處理了偏移量。 即,在每次RDD處理之后都保存偏移量。 當我們停止工作時會怎樣? 該作業在RDD的處理過程中停止。 微批處理的部分將寫入輸出Kafka主題,并且不會提交。 一旦作業再次運行,它將第二次處理某些消息,并且重復消息的峰值將(與以前一樣)出現在Druid中:

 

使用Kafka和Druid了解Spark流
圖4.作業重新啟動時的數據峰值

正常關機

事實證明,有一種方法可以確保在RDD處理期間不會殺死作業。這稱為"正常關機"。有幾篇博客文章描述了如何優雅地殺死Spark應用程序,但是其中大多數與舊版本的Spark有關,并且有很多限制。我們一直在尋找一種適用于任何規模且不依賴于特定Spark版本或操作系統的"安全"解決方案。要啟用正常關機,應使用以下參數創建Spark上下文:spark.streaming.stopGracefullyOnShutdown = true。這指示Spark在JVM關閉時(而不是立即)正常關閉StreamingContext。另外,我們需要一種機制來有意地停止工作,例如在部署新版本時。我們已經通過簡單地檢查是否存在指示作業關閉的HDFS文件來實現該機制的第一個版本。當文件顯示在HDFS中時,流上下文將使用以下參數停止:ssc.stop(stopSparkContext = true,stopGracefully = true)

在這種情況下,只有在完成所有接收到的數據處理之后,Spark應用程序才會正常停止。 這正是我們所需要的。

步驟#3:Kafka commitAsync

讓我們回顧一下到目前為止的情況。 我們有意在每個RDD處理中提交Kafka偏移量(使用Kafka commitAsync API),并使用Spark正常關機。 顯然,還有另一個警告。 深入研究Kafka API和Kafka commitAsync()源代碼的文檔,我了解到commitAsync()僅將offsetRanges放入隊列中,實際上僅在下一個foreachRDD循環中進行處理。 即使Spark作業正常停止并完成了所有RDD的處理,實際上也不會提交最后一個RDD的偏移量。 為解決此問題,我們實現了一個代碼,該代碼可同步保留Kafka偏移量,并且不依賴于Kafka commitAsync()。 然后,對于每個RDD,我們將提交的偏移量存儲在HDFS文件中。 當作業再次開始運行時,它將從HDFS加載偏移文件,并從這些偏移開始使用Kafka主題。

在這里,它有效!

僅僅是正常關機和Kafka偏移量同步存儲的組合,才為我們提供了理想的結果。 重新啟動期間沒有數據丟失,沒有數據高峰:

 

使用Kafka和Druid了解Spark流
圖5.重新啟動Spark作業期間沒有峰值數據丟失

結論

解決Spark Streaming和Kafka之間的集成問題是構建實時分析儀表板的重要里程碑。 我們找到了可以確保穩定的數據流的解決方案,而不會在Spark Streaming作業重啟期間丟失事件或重復。 現在,我們獲得了在Druid中可視化的可信賴數據。 因此,我們將更多類型的事件(Kafka主題)添加到了Druid中,并建立了實時儀表板。 這些儀表板為各種團隊提供了見解,例如BI,產品和客戶支持。 我們的下一個目標是利用Druid的更多功能,例如新的分析功能和警報。

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2024-08-21 08:00:00

2023-12-11 08:00:00

架構FlinkDruid

2021-12-14 09:56:51

HadoopSparkKafka

2022-08-26 17:08:51

KafkaRedi數據

2019-06-06 15:22:07

SparkShuffle內存

2019-07-26 15:01:42

SparkShuffle內存

2019-07-05 12:16:26

大數據IT互聯網

2020-06-28 07:39:44

Kafka分布式消息

2020-05-29 09:48:54

Python開發Kafka

2022-07-04 09:05:04

DruidSqlParserSQL

2020-06-28 13:54:22

Apache Spar窗口函數數據

2019-12-06 09:41:40

開源技術 軟件

2018-04-25 08:45:46

大數據

2018-08-19 09:15:25

MongoDBGo 微服務

2019-11-05 11:56:58

Kafka微服務開發

2023-11-02 10:39:58

2020-06-08 18:41:07

Kafka微服務Web

2022-06-24 08:00:00

編程工具數據結構開發

2022-08-22 08:07:45

DruidMySQL密碼

2021-12-02 07:50:30

字節緩沖流使用
點贊
收藏

51CTO技術棧公眾號

久久精品卡一| 理论片一区二区在线| 国产精品伦一区二区三级视频| 日韩av电影院| 在线免费观看视频| 国产精品免费精品自在线观看| 亚洲一区二区三区四区在线观看 | 人妻无码一区二区三区四区| 四季av日韩精品一区| 日韩精品一二三四| 欧美高清视频在线| 国产精品久久久久无码av色戒| 北岛玲精品视频在线观看| 亚洲午夜精品在线| 亚洲人成人77777线观看| 亚洲春色一区二区三区| 丝袜美腿亚洲一区二区图片| 久久国产精品久久久久久久久久| 亚洲精品乱码久久久久久蜜桃图片| 粉嫩一区二区三区| 亚洲午夜精品久久久久久久久| 日本一区二区三区视频在线观看| 91亚洲国产成人久久精品麻豆| 亚洲人人精品| 久久av红桃一区二区小说| 免费中文字幕av| 欧美美女福利视频| 色综合久久天天综合网| 欧美a级免费视频| 自拍视频在线播放| wwwwxxxxx欧美| 高清一区二区三区视频| 一级α片免费看刺激高潮视频| 日韩一区二区久久| 欧美大片大片在线播放| 日韩在线一卡二卡| 日本在线中文字幕一区| 日韩天堂在线观看| 香蕉成人伊视频在线观看| 992tv在线成人免费观看| av最新在线观看| 欧美日韩色图| 亚洲欧美另类人妖| 欧美无人区码suv| 视频一区视频二区欧美| 欧美精品一卡两卡| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 成人高潮免费视频| 日韩激情免费| 亚洲最新av网址| 欧美色图亚洲激情| 亚洲黄色录像| 亚洲乱码国产乱码精品精天堂| 蜜臀aⅴ国产精品久久久国产老师| 9999精品视频| 制服.丝袜.亚洲.中文.综合| 天天色综合社区| 国产成人毛片| 欧美日韩国产综合久久| av在线网址导航| 久久精品xxxxx| 欧美日韩在线一区二区| 亚洲国产日韩欧美在线观看| 欧美xxxx网站| 91精品综合久久久久久| 国产乱码一区二区三区四区| 国产精品一区二区三区www| 欧美日韩亚州综合| 亚洲一区二区偷拍| 香蕉成人app| 欧美成人一区二区三区片免费 | 久久久国产一区二区| 日韩av手机在线免费观看| 爽成人777777婷婷| 欧美肥老妇视频| 国产无遮挡免费视频| 亚洲三级网站| 日本aⅴ大伊香蕉精品视频| 一级做a爰片久久毛片| 免费成人在线观看视频| 91亚洲国产成人久久精品网站| 国产喷水福利在线视频| 成熟亚洲日本毛茸茸凸凹| 精品国产乱码一区二区三区四区| 人操人视频在线观看| 国产精品素人视频| 大片在线观看网站免费收看| 国内精彩免费自拍视频在线观看网址| 亚洲成人免费在线| 国产一区视频免费观看| 伊人久久综合网另类网站| 欧美不卡一二三| 亚洲做受高潮无遮挡| 色呦哟—国产精品| 欧美极品美女视频网站在线观看免费| 亚洲日本视频在线观看| 九九热在线视频观看这里只有精品| 亚洲a级在线播放观看| 婷婷开心激情网| 国产精品久99| 欧美 日本 亚洲| 祥仔av免费一区二区三区四区| 精品国产不卡一区二区三区| 中文字幕av久久爽一区| 欧美午夜一区| 国产精品精品久久久久久| 精品人妻一区二区三区日产乱码| 91色porny在线视频| 亚洲成人动漫在线| av在线日韩| 欧美xxxx在线观看| 午夜精品久久久久99蜜桃最新版| 伊人狠狠色j香婷婷综合| 日本欧美国产在线| 精品人妻久久久久一区二区三区| 久久欧美一区二区| 青青青青在线视频| 日韩免费在线电影| 亚洲欧美中文在线视频| 免费观看一级视频| 九一久久久久久| 欧美亚洲爱爱另类综合| 欧美videosex性极品hd| 欧美日韩国产小视频| aaaaaav| 黄色精品一区| 成人黄色片在线| yourporn在线观看视频| 疯狂做受xxxx欧美肥白少妇| 成人欧美精品一区二区| 天天做天天爱天天综合网2021| 456国产精品| 日韩在线观看视频一区| 亚洲美女精品一区| 一区二区免费av| 日韩精品首页| 国产精品h在线观看| 日本成人一区| 亚洲成av人**亚洲成av**| 久草福利在线观看| 1024精品久久久久久久久| 国产精品视频免费在线观看| 国产三级在线| 一本一本大道香蕉久在线精品| 无码国产69精品久久久久网站| 欧美成人一区二免费视频软件| 91精品久久久久久久久中文字幕 | 国内精品久久久久伊人av| 亚洲av无码国产精品永久一区| 亚洲丝袜美腿综合| www.色就是色.com| 亚洲男女av一区二区| 成人精品aaaa网站| 自拍视频在线| 91精品国产免费| 乱h高h女3p含苞待放| 国内成人免费视频| 蜜桃网站在线观看| eeuss鲁片一区二区三区| 欧美激情一二区| 亚洲免费国产视频| 精品久久久久久中文字幕| 91人妻一区二区| 99re国产精品| 蜜桃精品久久久久久久免费影院| 黑人巨大精品| 在线看福利67194| 国产精品久久影视| 亚洲已满18点击进入久久| 欧美夫妇交换xxx| 亚洲尤物在线| 少妇精品久久久久久久久久| 理论片午夜视频在线观看| 精品福利一区二区三区免费视频| 日韩久久久久久久久| 2021国产精品久久精品| www.99av.com| 欧美极品在线播放| 欧美在线一级片| 99在线精品免费视频九九视| 日韩人体视频一二区| 亚洲精品久久久久久一区二区| 福利一区在线| 欧美片一区二区三区| 蜜臀av免费在线观看| 91麻豆免费视频网站| 成人av在线网| 不卡av免费在线| 亚洲高清影视| 国外成人在线视频网站| 欧美va视频| 欧美精品一二区| 日韩黄色影片| 欧美日韩精品免费观看视频| 九九视频免费观看| 国产色综合久久| 熟妇女人妻丰满少妇中文字幕| 一区二区三区国产在线| 亚洲国产精品www| 北条麻妃在线一区二区免费播放| 日韩av免费在线播放| www.久久ai| 国产亚洲欧美aaaa| 亚洲AV无码国产精品午夜字幕| 天天影视色香欲综合网老头| 开心激情五月网| 久久综合久久综合久久综合| 天美一区二区三区| 日韩国产在线观看| 婷婷五月综合缴情在线视频| 天天揉久久久久亚洲精品| 久久综合精品一区| 日韩欧美中文在线观看| 国产精品美女在线观看| 亚洲精品88| 欧美精品在线免费播放| 成人免费在线电影| 日韩av在线网址| 亚洲精品成人电影| 欧美高清精品3d| 免费黄色一级大片| 欧美日韩国产一中文字不卡 | 亚洲啪啪综合av一区二区三区| 国产精品成人一区二区三区电影毛片| 国产精品88av| 亚洲精品免费一区亚洲精品免费精品一区| 国产麻豆综合| 欧美视频在线观看视频| 自拍偷拍欧美专区| 亚洲天堂电影网| 国产91久久精品一区二区| 国产无套精品一区二区| 久久丁香四色| 成人午夜在线观看| 久久亚洲精品人成综合网| 欧美一级高清免费| 精品丝袜在线| 91国产精品91| 182在线播放| 国模私拍一区二区三区| 香蕉久久aⅴ一区二区三区| 久久精品中文字幕免费mv| 福利在线视频导航| 国产亚洲一区精品| 国产美女性感在线观看懂色av| 精品视频偷偷看在线观看| 性xxxxbbbb| 精品视频久久久久久| 日本精品专区| 亚洲网站在线看| 国产区视频在线| 夜夜嗨av色一区二区不卡| 国产视频第一区| 尤物精品国产第一福利三区| 成人在线播放视频| 综合激情国产一区| 欧美三级理伦电影| 久久精品2019中文字幕| 久操视频在线免费播放| 久久久精品一区二区| 国产精品嫩草av| 亚洲传媒在线| 欧美性bbwbbwbbwhd| 欧美色就是色| 亚洲 欧洲 日韩| 欧美/亚洲一区| 黄色一级片在线看| 亚洲一区二区三区高清| 日韩精品视频一区二区在线观看| 久久精品动漫| xxxx在线免费观看| 成人精品免费视频| 搡老熟女老女人一区二区| 久久久精品一品道一区| 在线观看亚洲大片短视频| 一区在线播放视频| 九九视频免费观看| 一本高清dvd不卡在线观看| 在线观看免费视频一区| 日韩欧美亚洲国产另类| 天堂中文在线看| 最近2019中文免费高清视频观看www99 | 国产综合色精品一区二区三区| 一卡二卡三卡四卡五卡| av在线不卡电影| 精品日韩在线视频| 一区二区三区蜜桃| 黄色免费av网站| 欧美剧在线免费观看网站 | av之家在线观看| 蜜臀av一区二区在线观看| 欧美xxxx黑人| 久久久久久久久久久久久女国产乱 | 美女少妇一区二区| 成人性生交大片免费看视频在线| 爱爱免费小视频| 亚洲精品免费在线播放| 欧美男人亚洲天堂| 日韩女优电影在线观看| 国产一二三区在线视频| 欧美情侣性视频| 91超碰碰碰碰久久久久久综合| 成人av资源网| 日韩免费av| 国产a级一级片| 国产精品一区二区三区网站| 麻豆精品免费视频| 樱桃国产成人精品视频| 懂色av中文字幕| 亚洲高清福利视频| av理论在线观看| 国产精品狠色婷| 久久男人av| 中文字幕免费在线不卡| 久久综合亚州| 亚洲最大成人网色| dy888亚洲精品一区二区三区| 9.1国产丝袜在线观看| 国产精品亚洲综合在线观看| 日韩国产精品一区二区三区| 亚洲精品男同| 绯色av蜜臀vs少妇| 亚洲天天做日日做天天谢日日欢| 久久久久久不卡| 日韩高清有码在线| 后进极品白嫩翘臀在线播放| 成人免费自拍视频| 日本a级不卡| 午夜dv内射一区二区| 91在线观看地址| 国产成人无码一区二区三区在线| 欧美成人国产一区二区| www免费在线观看| 亚洲www在线观看| 午夜精品毛片| 在线观看日本一区二区| 国产精品人人做人人爽人人添| 免费污污视频在线观看| 亚洲美女视频网| sis001欧美| 欧美日韩亚洲一区二区三区在线观看 | 五月天婷婷激情| 日韩电视剧在线观看免费网站 | 国产精品wwww| 欧美女优在线视频| 超碰97人人射妻| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲欧美综合| 亚洲成a人无码| 亚洲1区2区3区视频| 亚洲精品97久久中文字幕| 欧美国产精品va在线观看| y111111国产精品久久久| 日韩精品综合在线| 成人黄色777网| 免费看日韩毛片| 精品视频www| 91福利精品在线观看| 一区二区不卡在线| 国产尤物一区二区在线| 放荡的美妇在线播放| 欧美成人艳星乳罩| 国产第一页在线视频| 久久综合九九| 免费在线视频一区| 91高清免费看| 精品久久久久久久人人人人传媒 | 日本激情在线观看| 亚洲xxxx做受欧美| 国产一区二区三区四区三区四| 中文字幕免费在线播放| 欧美日韩在线另类| av资源在线观看免费高清| 成人美女av在线直播| 国产一区激情| 国产一二三四五区| 国产精品激情电影| 精品久久久久久中文字幕动漫| 在线午夜精品| 国产馆在线观看| 日韩精品一区二区三区在线播放 | 国产成人啪精品视频免费网| 欧美精品一区二区久久| 日韩欧美中文视频| 天天色天天操综合| 国产精品秘入口| 亚洲一区二区三区四区在线播放| 欧美精品国产一区| 精品少妇人妻一区二区黑料社区 | 亚洲精品高清视频在线观看| 天天干天天摸天天操| 国产精品久久久久久久一区探花 | 国产免费一区二区三区最新不卡| 欧美高跟鞋交xxxxxhd| 久久av影视| 美女被爆操网站| 在线观看一区二区视频| 日本动漫理论片在线观看网站| 鲁片一区二区三区| 国产美女一区二区|