中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Spark、Flink、CarbonData技術實踐最佳案例解析

2018-09-20    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

當前無論是傳統(tǒng)企業(yè)還是互聯(lián)網(wǎng)公司對大數(shù)據(jù)實時分析和處理的要求越來越高,數(shù)據(jù)越實時價值越大,面向毫秒~秒級的實時大數(shù)據(jù)計算場景,Spark和Flink各有所長。CarbonData是一種高性能大數(shù)據(jù)存儲方案,已在20+企業(yè)生產(chǎn)環(huán)境上部署應用,其中最大的單一集群數(shù)據(jù)規(guī)模達到幾萬億。

為幫助開發(fā)者更深入的了解這三個大數(shù)據(jù)開源技術及其實際應用場景,9月8日,InfoQ聯(lián)合華為云舉辦了一場實時大數(shù)據(jù)Meetup,集結(jié)了來自Databricks、華為及美團點評的大咖級嘉賓前來分享。

本文整理了其中的部分精彩內(nèi)容,同時,作為本次活動的承辦方,InfoQ整理上傳了所有講師的演講PPT,感興趣的同學可以下載講師PPT獲取完整資料 。

Spark Structured Streaming特性介紹 (講師PPT下載)

作為Spark Structured Streaming最核心的開發(fā)人員、Databricks工程師,Tathagata Das(以下簡稱“TD”)在開場演講中介紹了Structured Streaming的基本概念,及其在存儲、自動流化、容錯、性能等方面的特性,在事件時間的處理機制,最后帶來了一些實際應用場景。

首先,TD對流處理所面對的問題和概念做了清晰的講解。TD提到,因為流處理具有如下顯著的復雜性特征,所以很難建立非常健壯的處理過程:

• 一是數(shù)據(jù)有各種不同格式(Jason、Avro、二進制)、臟數(shù)據(jù)、不及時且無序;

• 二是復雜的加載過程,基于事件時間的過程需要支持交互查詢,和機器學習組合使用;

• 三是不同的存儲系統(tǒng)和格式(SQL、NoSQL、Parquet等),要考慮如何容錯。

因為可以運行在Spark SQL引擎上,Spark Structured Streaming天然擁有較好的性能、良好的擴展性及容錯性等Spark優(yōu)勢。除此之外,它還具備豐富、統(tǒng)一、高層次的API,因此便于處理復雜的數(shù)據(jù)和工作流。再加上,無論是Spark自身,還是其集成的多個存儲系統(tǒng),都有豐富的生態(tài)圈。這些優(yōu)勢也讓Spark Structured Streaming得到更多的發(fā)展和使用。

流的定義是一種無限表(unbounded table),把數(shù)據(jù)流中的新數(shù)據(jù)追加在這張無限表中,而它的查詢過程可以拆解為幾個步驟,例如可以從Kafka讀取JSON數(shù)據(jù),解析JSON數(shù)據(jù),存入結(jié)構(gòu)化Parquet表中,并確保端到端的容錯機制。其中的特性包括:

• 支持多種消息隊列,比如Files/Kafka/Kinesis等。

• 可以用join(), union()連接多個不同類型的數(shù)據(jù)源。

• 返回一個DataFrame,它具有一個無限表的結(jié)構(gòu)。

• 你可以按需選擇SQL(BI分析)、DataFrame(數(shù)據(jù)科學家分析)、DataSet(數(shù)據(jù)引擎),它們有幾乎一樣的語義和性能。

• 把Kafka的JSON結(jié)構(gòu)的記錄轉(zhuǎn)換成String,生成嵌套列,利用了很多優(yōu)化過的處理函數(shù)來完成這個動作,例如from_json(),也允許各種自定義函數(shù)協(xié)助處理,例如Lambdas, flatMap。

• 在Sink步驟中可以寫入外部存儲系統(tǒng),例如Parquet。在Kafka sink中,支持foreach來對輸出數(shù)據(jù)做任何處理,支持事務和exactly-once方式。

• 支持固定時間間隔的微批次處理,具備微批次處理的高性能性,支持低延遲的連續(xù)處理(Spark 2.3),支持檢查點機制(check point)。

• 秒級處理來自Kafka的結(jié)構(gòu)化源數(shù)據(jù),可以充分為查詢做好準備。

Spark SQL把批次查詢轉(zhuǎn)化為一系列增量執(zhí)行計劃,從而可以分批次地操作數(shù)據(jù)。

 

 

在容錯機制上,Structured Streaming采取檢查點機制,把進度offset寫入stable的存儲中,用JSON的方式保存支持向下兼容,允許從任何錯誤點(例如自動增加一個過濾來處理中斷的數(shù)據(jù))進行恢復。這樣確保了端到端數(shù)據(jù)的exactly-once。

在性能上,Structured Streaming重用了Spark SQL優(yōu)化器和Tungsten引擎,而且成本降低了3倍!!更多的信息可以參考作者的blog。

Structured Streaming隔離處理邏輯采用的是可配置化的方式(比如定制JSON的輸入數(shù)據(jù)格式),執(zhí)行方式是批處理還是流查詢很容易識別。同時TD還比較了批處理、微批次-流處理、持續(xù)流處理三種模式的延遲性、吞吐性和資源分配情況。

在時間窗口的支持上,Structured Streaming支持基于事件時間(event-time)的聚合,這樣更容易了解每隔一段時間發(fā)生的事情。同時也支持各種用戶定義聚合函數(shù)(User Defined Aggregate Function,UDAF)。另外,Structured Streaming可通過不同觸發(fā)器間分布式存儲的狀態(tài)來進行聚合,狀態(tài)被存儲在內(nèi)存中,歸檔采用HDFS的Write Ahead Log (WAL)機制。當然,Structured Streaming還可自動處理過時的數(shù)據(jù),更新舊的保存狀態(tài)。因為歷史狀態(tài)記錄可能無限增長,這會帶來一些性能問題,為了限制狀態(tài)記錄的大小,Spark使用水印(watermarking)來刪除不再更新的舊的聚合數(shù)據(jù)。允許支持自定義狀態(tài)函數(shù),比如事件或處理時間的超時,同時支持Scala和Java。

TD在演講中也具體舉例了流處理的應用情況。在蘋果的信息安全平臺中,每秒將產(chǎn)生有百萬級事件,Structured Streaming可以用來做缺陷檢測,下圖是該平臺架構(gòu):

 

 

在該架構(gòu)中,一是可以把任意原始日志通過ETL加載到結(jié)構(gòu)化日志庫中,通過批次控制可很快進行災難恢復;二是可以連接很多其它的數(shù)據(jù)信息(DHCP session,緩慢變化的數(shù)據(jù));三是提供了多種混合工作方式:實時警告、歷史報告、ad-hoc分析、統(tǒng)一的API允許支持各種分析(例如實時報警系統(tǒng))等,支持快速部署。四是達到了百萬事件秒級處理性能。

更多信息,可以參考在線的文檔:

• Structured Streaming編程在線指南

• Databricks的blog

• Databricks的產(chǎn)品

標簽: 安全 大數(shù)據(jù) 互聯(lián)網(wǎng) 互聯(lián)網(wǎng)公司 開發(fā)者 信息安全

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:騰訊開源ML-Images,超越谷歌成業(yè)內(nèi)最大多標簽圖像數(shù)據(jù)集

下一篇:涂子沛:從幼稚到成熟,我們這個時代的數(shù)據(jù)革命