王志紅
摘要:在當(dāng)前我國(guó)大數(shù)據(jù)時(shí)代的背景下人們對(duì)于信息的實(shí)時(shí)處理平臺(tái)愈發(fā)關(guān)注,早在2014年,對(duì)于數(shù)據(jù)的分析處理,F(xiàn)link平臺(tái)便為其提供了新思路與新方法。筆者結(jié)合自身多年經(jīng)驗(yàn),對(duì)Flink平臺(tái)理論進(jìn)行分析,闡述生態(tài)系統(tǒng)等相關(guān)技術(shù),除此之外,還分析了當(dāng)前Flink平臺(tái)所面臨的挑戰(zhàn)。文章內(nèi)容可供各位同行相互參考,希望能為Flink平臺(tái)未來的發(fā)展有所啟示。
關(guān)鍵詞:Flink平臺(tái) 大數(shù)據(jù)時(shí)代 生態(tài)系統(tǒng)
前言
在當(dāng)前我國(guó)現(xiàn)代化信息時(shí)代,人們?cè)谌粘I罟ぷ髦?,?huì)產(chǎn)生大量的數(shù)據(jù)信息,這便是大數(shù)據(jù)。結(jié)合當(dāng)下我國(guó)Flink平臺(tái)的實(shí)際發(fā)展情況來看,有關(guān)數(shù)據(jù)分析、實(shí)時(shí)計(jì)算搜索等功能都能夠在Flink平臺(tái)上實(shí)現(xiàn),但是Flink平臺(tái)在當(dāng)前社會(huì)快速發(fā)展的背景下,在運(yùn)用過程中面臨著諸多問題,基于此本文主要內(nèi)容研究Flink平臺(tái)的運(yùn)用具有十分重要的現(xiàn)實(shí)意義。
1 Flink平臺(tái)的工作機(jī)制與相關(guān)技術(shù)
Flink其本質(zhì)以一個(gè)較為新型的流處理系統(tǒng),在Flink中所蘊(yùn)含的豐富的API接口能夠有效幫助相關(guān)工作人員,對(duì)流處理應(yīng)用進(jìn)行開發(fā),除此之外,F(xiàn)link自身還具有十分顯著的靈活性這一特征,與此同時(shí),F(xiàn)link還具有十分高效的流和數(shù)據(jù)容錯(cuò)。在Flink中,流處理能夠有效以低延時(shí)的狀態(tài)對(duì)相關(guān)工作任務(wù)開展處理工作。一些新型的而應(yīng)用在處理相關(guān)數(shù)據(jù)過程中,需要開展持續(xù)查詢工作,這些應(yīng)用在一定程度上只能通過流架構(gòu)實(shí)現(xiàn)。
在開展流架構(gòu)處理工作時(shí),首選需要從各種數(shù)據(jù)源中收集各種數(shù)據(jù)信息,主要數(shù)據(jù)源包含有機(jī)器業(yè)務(wù)平臺(tái)的生產(chǎn)業(yè)務(wù)操作日志、數(shù)據(jù)庫(kù)結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、文本數(shù)據(jù)等,在此過程中,需要對(duì)相關(guān)數(shù)據(jù)進(jìn)行實(shí)時(shí)加工清洗計(jì)算后組織到一個(gè)中心。其次,在此中心中形成各種流,例如Apache Kafka這一典型工具,能夠在運(yùn)行過程中提供broker功能,以自身較高的可靠性,以及較低的失敗容錯(cuò)率,來對(duì)緩沖數(shù)據(jù)以及流日志開展收集工作,進(jìn)而將相關(guān)數(shù)據(jù)信息結(jié)合受眾的喜好進(jìn)行分發(fā)。再次,要對(duì)流開展真正的分析工作,在此工程中,F(xiàn)link能夠提供分析工作所需的一步到位的高級(jí)編程?;谏鲜鰞?nèi)容可知,F(xiàn)link不僅能夠有效開展流處理,還能夠進(jìn)行批處理。
結(jié)合Flink的實(shí)際運(yùn)行情況來看,在其運(yùn)行過程中主要依賴于Hadoop平臺(tái)來執(zhí)行相關(guān)動(dòng)作。Hadoop平臺(tái)最早起源于Nutch,Nutch的本質(zhì)是一個(gè)搜索引擎,基于開源JAVA進(jìn)行實(shí)現(xiàn)的。而Flink是Spark擴(kuò)展而來的平臺(tái),能夠?qū)﹂_展流式數(shù)據(jù)的處理工作以及批處理工作,基于此我們可知Flink對(duì)于Hadoop具有良好的兼容性。結(jié)合Hadoop與Flink的實(shí)際運(yùn)行情況來看,F(xiàn)link相較于Hadoop擁有較好的數(shù)據(jù)處理能力這是因?yàn)镕link在運(yùn)行過程中,通過內(nèi)存來開展相關(guān)計(jì)算活動(dòng)。
2 Flink流處理的時(shí)間窗口
針對(duì)于流式處理平臺(tái)而言,在運(yùn)行過程中,流入其中的信息為無限量,在信息流人之后,流處理系統(tǒng)自身需要開展聚合連接操作,在此過程中,對(duì)流入消息會(huì)進(jìn)行分段處理,隨后根據(jù)系統(tǒng)在對(duì)不同階段的信息進(jìn)行聚合連接處理。其中對(duì)消息進(jìn)行分段則被稱為窗口,在流式處理系統(tǒng)中會(huì)支持各種各樣的窗口類型,時(shí)間窗口也在其中,時(shí)間窗口指代的是,根據(jù)時(shí)間間隔對(duì)流系統(tǒng)的流人信息進(jìn)行分段處理。對(duì)于當(dāng)前我國(guó)Flink流處理平臺(tái)的實(shí)際發(fā)展情況來看,通常情況下是根據(jù)系統(tǒng)內(nèi)TASK所在節(jié)點(diǎn)的本地時(shí)間對(duì)相關(guān)消息進(jìn)行切分處理,采用時(shí)間窗口模式,能夠促使流式處理系統(tǒng)在運(yùn)行過程中不會(huì)阻塞消息,保持系統(tǒng)自身的流暢性,但是在此過程中可能會(huì)導(dǎo)致部分應(yīng)用的要求無法滿足。例如,F(xiàn)link流處理的信息本身帶有時(shí)間戳,因此,用戶自身希望能夠按照信息自身的時(shí)間戳來進(jìn)行處理,此要求在Flink流處理的時(shí)間窗口中無法實(shí)現(xiàn),除此之外,由于Flink流處理平臺(tái)中不同節(jié)點(diǎn)的時(shí)間不同,導(dǎo)致信息在被處理過程中,流經(jīng)系統(tǒng)中各個(gè)節(jié)點(diǎn)的延遲不同,通常情況下表現(xiàn)為,在某節(jié)點(diǎn),同屬于一個(gè)時(shí)間窗口的消息在流經(jīng)系統(tǒng)中下一個(gè)節(jié)點(diǎn)時(shí)可能會(huì)被切分到不同的時(shí)間窗口中,最終會(huì)導(dǎo)致信息最終的處理結(jié)果不能符合預(yù)期的結(jié)果。
結(jié)合當(dāng)前Flink流處理平臺(tái)的實(shí)際運(yùn)行情況來看,現(xiàn)如今主要支持三種類型的時(shí)間窗口,能夠有效滿足用戶對(duì)Flink流處理平臺(tái)中時(shí)間窗口的要求。首先為Operator Time,它的使用導(dǎo)致Flink平臺(tái)在運(yùn)行過程中能夠根據(jù)task所在節(jié)點(diǎn)的本地時(shí)鐘對(duì)時(shí)間窗口進(jìn)行切分。其次為Event Time,當(dāng)流入的消息自帶時(shí)間戳?xí)r,能夠促使Flink流處理平臺(tái)能夠根據(jù)時(shí)間戳對(duì)消息進(jìn)行處理,確保統(tǒng)一時(shí)間戳內(nèi)的消息能夠被正確處理。最后為Ingress Time,當(dāng)消息自身并沒有攜帶時(shí)間戳?xí)r,但是用戶仍舊希望按照消息進(jìn)行處理,而不是按照系統(tǒng)平臺(tái)中的節(jié)點(diǎn)時(shí)鐘進(jìn)行劃分,此時(shí)利用Ingress Time能夠?qū)ο⑦M(jìn)行有效處理。
3 未來發(fā)展所面臨的挑戰(zhàn)
結(jié)合當(dāng)前我國(guó)Flink平臺(tái)的發(fā)展現(xiàn)狀來看,目前流式處理平臺(tái)類型眾多,其中主要平臺(tái)包含有Spark Streaming、Storm、Trident等,并且不同平臺(tái)在處理信息數(shù)據(jù)方面具有自身優(yōu)勢(shì),例如,如果僅僅只從模型建造方面對(duì)流處理平臺(tái)進(jìn)行分析的化,Storm、Trident對(duì)于小批量處理方面優(yōu)勢(shì)較為突出,并且在處理過程中其所占用的空間較小。如果要從流式處理平臺(tái)的延時(shí)方面考慮,Storm在此方面優(yōu)勢(shì)較為突出,但是在處理過程中的吞吐率上,F(xiàn)link具有十分明顯的優(yōu)勢(shì),但是結(jié)合流處理平臺(tái)的整體發(fā)展現(xiàn)狀來看,F(xiàn)link平臺(tái)成熟度較低,其余三種主流平臺(tái)都相較于Flink平臺(tái)成熟。目前Flink平臺(tái)在運(yùn)行過程中主要面臨的問題為工作負(fù)載的問題,因?yàn)樵诋?dāng)前大數(shù)據(jù)時(shí)代,F(xiàn)link平臺(tái)在處理數(shù)據(jù)信息等相關(guān)內(nèi)容時(shí),需要處理巨大數(shù)量的數(shù)據(jù)量,也要面臨著不斷動(dòng)態(tài)變化的工作量。由于流應(yīng)用在運(yùn)行過程中自身特性導(dǎo)致相關(guān)外來數(shù)據(jù)信息能夠隨著時(shí)間的變化而變化,因此,F(xiàn)link平臺(tái)在運(yùn)行過程中不能針對(duì)自身工作量進(jìn)行提前預(yù)估,因此,在運(yùn)行過程中需要適應(yīng)動(dòng)態(tài)資源消耗這一特征,針對(duì)于此,F(xiàn)link平臺(tái)在未來發(fā)展過程中,需要對(duì)其運(yùn)行過程中的問題進(jìn)行解決,促使自身適應(yīng)數(shù)據(jù)處理的工作負(fù)載,只有這樣才能夠有效保障自身不斷發(fā)展。在Flink平臺(tái)的應(yīng)用中,還需對(duì)Yarn進(jìn)行合理整合,提升數(shù)據(jù)處理效率,但是就目前來看業(yè)務(wù)平臺(tái)在發(fā)展中數(shù)據(jù)的數(shù)量在不斷增加,F(xiàn)link平臺(tái)一旦在應(yīng)用中出現(xiàn)故障,就會(huì)對(duì)業(yè)務(wù)平臺(tái)生產(chǎn)環(huán)境中的數(shù)據(jù)處理造成極大阻礙,而這也是Flink平臺(tái)在日后需要解決的問題。
4 結(jié)語(yǔ)
綜上所述,F(xiàn)link平臺(tái)在發(fā)展過程中,相較于其他主流流式處理平臺(tái)成熟度度較低,因此,在運(yùn)行發(fā)展過程中,應(yīng)該結(jié)合自身實(shí)際情況,增強(qiáng)自身工作負(fù)載能力,以便能夠在當(dāng)前大數(shù)據(jù)時(shí)代,對(duì)相關(guān)數(shù)據(jù)信息進(jìn)行處理,有效促使自身不斷發(fā)展。
參考文獻(xiàn)
[1]蔡鯤鵬.基于Flink平臺(tái)的應(yīng)用研究[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2017, 7(2):99-101.
[2]馬黎[1.Spark和Flink平臺(tái)大數(shù)據(jù)批量處理的性能分析[J],中國(guó)電子科學(xué)研究院學(xué)報(bào),2018,13(2):81-85+103.
[3]倪政君,夏哲雷.Flink的并行Apriori算法設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)計(jì)量學(xué)院學(xué)報(bào),2018,29(2):175-180.