本篇文章給大家談?wù)勑乱淮髷?shù)據(jù)處理引擎flink,以及大數(shù)據(jù)引擎技術(shù)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、flink是干嘛的
- 2、常見(jiàn)的大數(shù)據(jù)處理工具
- 3、Flink——Exactly-Once
- 4、flink框架是什么
- 5、FLink的窗口機(jī)制與流處理Join的方案
flink是干嘛的
Flink其實(shí)就是Apache Flink,是一款業(yè)內(nèi)非?;鸬拇髷?shù)據(jù)產(chǎn)品,由Apache軟件基金會(huì)開(kāi)發(fā),核心是用Java和Scala編寫的分布式流數(shù)據(jù)流引擎。Apache Flink是個(gè)旨在提供‘一站式’ 的分布式開(kāi)源數(shù)據(jù)處理框架。Flink以數(shù)據(jù)并行和流水線方式執(zhí)行任意流數(shù)據(jù)程序,F(xiàn)link的流水線運(yùn)行時(shí)系統(tǒng)可以執(zhí)行批處理和流處理程序。
Apache Flink 是一個(gè)流處理和批處理的開(kāi)源框架,它用于構(gòu)建大規(guī)模數(shù)據(jù)流和離線處理應(yīng)用程序。Flink 提供了一個(gè)高效的分布式計(jì)算引擎,能夠在多核和集群環(huán)境中處理實(shí)時(shí)數(shù)據(jù)流,并且能夠同時(shí)處理大規(guī)模數(shù)據(jù)集。
大數(shù)據(jù)中可以用來(lái)實(shí)現(xiàn)流計(jì)算的技術(shù)是Storm、Flink、Spark Streaming。Storm的設(shè)計(jì)理念就是把和具體業(yè)務(wù)邏輯無(wú)關(guān)的東西抽離出來(lái),形成一個(gè)框架,比如大數(shù)據(jù)的分片處理、數(shù)據(jù)的流轉(zhuǎn)、任務(wù)的部署與執(zhí)行等,開(kāi)發(fā)者只需要按照框架的約束,開(kāi)發(fā)業(yè)務(wù)邏輯代碼,提交給框架執(zhí)行就可以了。
常見(jiàn)的大數(shù)據(jù)處理工具
常見(jiàn)的大數(shù)據(jù)處理工具有Hadoop、Spark、Apache Flink、Kafka和Storm等。 **Hadoop**:Hadoop是一個(gè)分布式計(jì)算框架,它允許用戶存儲(chǔ)和處理大規(guī)模數(shù)據(jù)集。Hadoop提供了HDFS(分布式文件系統(tǒng))和MapReduce(分布式計(jì)算模型)兩個(gè)核心組件,使得用戶可以以一種可擴(kuò)展和容錯(cuò)的方式處理數(shù)據(jù)。
Hadoop Hadoop 是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。但是 Hadoop 是以一種可靠、高效、可伸縮的方式進(jìn)行處理的。Hadoop 是可靠的,因?yàn)樗僭O(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,因此它維護(hù)多個(gè)工作數(shù)據(jù)副本,確保能夠針對(duì)失敗的節(jié)點(diǎn)重新分布處理。
數(shù)據(jù)分析的工具千萬(wàn)種,綜合起來(lái)萬(wàn)變不離其宗。無(wú)非是數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)管理、數(shù)據(jù)計(jì)算、數(shù)據(jù)分析、數(shù)據(jù)展示等幾個(gè)方面。而SAS、R、SPSS、python、excel是被提到頻率最高的數(shù)據(jù)分析工具。
Hadoop Hadoop是用于分布式處理的大量數(shù)據(jù)軟件框架。但是Hadoop以可靠,高效和可擴(kuò)展的方式進(jìn)行處理。Hadoop是可靠的,因?yàn)樗俣ㄓ?jì)算元素和存儲(chǔ)將發(fā)生故障,因此它維護(hù)工作數(shù)據(jù)的多個(gè)副本以確??梢詾楣收瞎?jié)點(diǎn)重新分配處理。Hadoop之所以高效是因?yàn)樗梢圆⑿泄ぷ鳎⑼ㄟ^(guò)并行處理來(lái)加快處理速度。
對(duì)于不同的層次是有不同的工具進(jìn)行工作的。Smartbi作為國(guó)內(nèi)資深專業(yè)的BI廠商,定位于一站式大數(shù)據(jù)服務(wù)平臺(tái),對(duì)接各種業(yè)務(wù)數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)和大數(shù)據(jù)平臺(tái),進(jìn)行加工處理、分析挖掘與可視化展現(xiàn);滿足各種數(shù)據(jù)分析應(yīng)用需求,如企業(yè)報(bào)表平臺(tái)、自助探索分析、地圖可視化、移動(dòng)管理駕駛艙、指揮大屏幕、數(shù)據(jù)挖掘等。
HDFS Hadoop分布式文件體系(Hadoop Distributed File System,HDFS)現(xiàn)在是Apache Hadoop項(xiàng)目的一個(gè)子項(xiàng)目,與已有的分布式文件體系有許多相似之處。
Flink——Exactly-Once
1、Flink采用了一種輕量級(jí)快照機(jī)制(檢查點(diǎn)checkpoint)來(lái)保障Exactly-Once的一致性語(yǔ)義。所謂的一致檢查點(diǎn),即在某個(gè)時(shí)間點(diǎn)上所有任務(wù)狀態(tài)的一份拷貝(快照)。該時(shí)間點(diǎn)是所有任務(wù)剛好處理完一個(gè)相同數(shù)據(jù)的時(shí)間。
2、Flink 提供了容錯(cuò)機(jī)制,可以恢復(fù)數(shù)據(jù)流應(yīng)用到一致?tīng)顟B(tài)。該機(jī)制確保在發(fā)生故障時(shí),程序的狀態(tài)最終將只反映數(shù)據(jù)流中的每個(gè)記錄一次(exactly once),有一個(gè)開(kāi)關(guān)可以降級(jí)為至少一次(at-least-once)。
3、Flink的一個(gè)重大價(jià)值在于,它既保證了exactly-once,也具有低延遲和高吞吐的處理能力。 Flink使用了一種輕量級(jí)快照機(jī)制——檢查點(diǎn)(checkpoint)來(lái)保證exactly-once語(yǔ)義 有狀態(tài)流應(yīng)用的一致檢查點(diǎn),其實(shí)就是:所有任務(wù)的狀態(tài),在某個(gè)時(shí)間點(diǎn)的一份備份(一份快照)。
flink框架是什么
1、flink框架是什么 Apache Flink 是一個(gè)流處理和批處理的開(kāi)源框架,它用于構(gòu)建大規(guī)模數(shù)據(jù)流和離線處理應(yīng)用程序。Flink 提供了一個(gè)高效的分布式計(jì)算引擎,能夠在多核和集群環(huán)境中處理實(shí)時(shí)數(shù)據(jù)流,并且能夠同時(shí)處理大規(guī)模數(shù)據(jù)集。
2、Flink其實(shí)就是Apache Flink,是一款業(yè)內(nèi)非?;鸬拇髷?shù)據(jù)產(chǎn)品,由Apache軟件基金會(huì)開(kāi)發(fā),核心是用Java和Scala編寫的分布式流數(shù)據(jù)流引擎。Apache Flink是個(gè)旨在提供‘一站式’ 的分布式開(kāi)源數(shù)據(jù)處理框架。Flink以數(shù)據(jù)并行和流水線方式執(zhí)行任意流數(shù)據(jù)程序,F(xiàn)link的流水線運(yùn)行時(shí)系統(tǒng)可以執(zhí)行批處理和流處理程序。
3、Flink是一個(gè)框架和分布式處理引擎,用于對(duì)無(wú)限制和有限制的數(shù)據(jù)留進(jìn)行有狀態(tài)的計(jì)算。Flink被設(shè)計(jì)為可在所有常見(jiàn)的集群環(huán)境中運(yùn)行,以內(nèi)存速度和任何規(guī)模執(zhí)行計(jì)算。任何類型的數(shù)據(jù)都是作為事件流產(chǎn)生的。信用卡交易,傳感器測(cè)量,機(jī)器日志或網(wǎng)站移動(dòng)應(yīng)用程序上的用戶交互,所有這些數(shù)據(jù)均作為流生成。
FLink的窗口機(jī)制與流處理Join的方案
上節(jié)說(shuō)道,flink sql left join 在流數(shù)據(jù)到達(dá)時(shí),如果左表流(show_log)join 不到右表流(click_log) ,則不會(huì)等待右流直接輸出(show_log,null),在后續(xù)右表流數(shù)據(jù)代打時(shí),會(huì)將(show_log,null)撤回,發(fā)送(show_log,click_log)。這就是為什么產(chǎn)生了 retract 流,從而導(dǎo)致重復(fù)寫入 kafka。
Flink中所有的內(nèi)置窗口(全局窗口除外)都有基于時(shí)間的實(shí)現(xiàn),這個(gè)時(shí)間可以是事件時(shí)間(event time),也可以是處理時(shí)間(processing time)。
Group Window Aggregation 中 Session 窗口的寫法就是把 session window 的聲明寫在了 group by 子句中 Session 窗口即支持處理時(shí)間也支持事件時(shí)間。但是處理時(shí)間只支持在 Streaming 任務(wù)中運(yùn)行,Batch 任務(wù)不支持。
使用Flink的Watermark機(jī)制。使用regularjoin來(lái)保證雙流一起到,需要使用Flink的Watermark機(jī)制。Watermark機(jī)制可以根據(jù)輸入數(shù)據(jù)流中的事件時(shí)間戳定義一個(gè)延遲閾值,以便Flink可以確定哪些記錄允許進(jìn)行連接,哪些記錄不允許進(jìn)行連接,以及哪些記錄可以將延遲的記錄連接到現(xiàn)有的正常記錄。
下圖是采用與Spark Streaming類似的微批次(micro-batch)手段進(jìn)行處理的流程圖,可見(jiàn)是根據(jù)processing time進(jìn)行處理,與event time并沒(méi)有關(guān)系。下圖則是與Flink類似的固定窗口+流式處理機(jī)制。由這張圖可以看出啟發(fā)式水印的問(wèn)題:數(shù)據(jù)9在水印觸發(fā)時(shí)實(shí)際上還沒(méi)有到,也就是水印太快了。
版本引入的狀態(tài)管理進(jìn)一步提升了性能,使得處理復(fù)雜流傳輸變得更為靈活。Flink通過(guò)輕量級(jí)分布式快照機(jī)制實(shí)現(xiàn)容錯(cuò),同時(shí)利用Save Points技術(shù)避免數(shù)據(jù)丟失,為實(shí)時(shí)推薦、欺詐檢測(cè)和數(shù)倉(cāng)分析等關(guān)鍵應(yīng)用場(chǎng)景提供了強(qiáng)大支持。Flink的架構(gòu)設(shè)計(jì)精巧,分為API&Libraries、Runtime核心和物理部署三層。
關(guān)于新一代大數(shù)據(jù)處理引擎flink和大數(shù)據(jù)引擎技術(shù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。