您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Flink基礎(chǔ)知識(shí)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
Apache Flink是由Apache軟件基金會(huì)開發(fā)的開源流處理框架,其核心是用Java和Scala編寫的分布式流數(shù)據(jù)流引擎。Flink以數(shù)據(jù)并行和流水線方式執(zhí)行任意流數(shù)據(jù)程序,F(xiàn)link的流水線運(yùn)行時(shí)系統(tǒng)可以執(zhí)行批處理和流處理程序。此外,F(xiàn)link的運(yùn)行時(shí)本身也支持迭代算法的執(zhí)行。
目前Apache Flink為全球許多公司和企業(yè)的關(guān)鍵業(yè)務(wù)提供支持,國(guó)內(nèi)國(guó)外許多一線大廠與IT公司將實(shí)時(shí)數(shù)據(jù)方案采用了Flink來做大數(shù)據(jù)分析與實(shí)時(shí)處理,如國(guó)內(nèi)的:阿里、華為、電信、移動(dòng)、快手、小米、oppo、唯品會(huì)等等,因此Flink是做為大數(shù)據(jù)實(shí)時(shí)分析與處理中必學(xué)的一種技術(shù)應(yīng)用架構(gòu);
官方介紹
Apache Flink 是一個(gè)在無界和有界數(shù)據(jù)流上進(jìn)行狀態(tài)計(jì)算的框架和分布式處理引擎。 Flink 已經(jīng)可以在所有常見的集群環(huán)境中運(yùn)行,并以 in-memory 的速度和任意的規(guī)模進(jìn)行計(jì)算。
處理無界和有界數(shù)據(jù)
任何類型的數(shù)據(jù)都可以形成一種事件流。信用卡交易、傳感器測(cè)量、機(jī)器日志、網(wǎng)站或移動(dòng)應(yīng)用程序上的用戶交互記錄,所有這些數(shù)據(jù)都形成一種流。
數(shù)據(jù)可以被作為 無界或者 有界流來處理。
1.無界流 有定義流的開始,但沒有定義流的結(jié)束。它們會(huì)無休止地產(chǎn)生數(shù)據(jù)。無界流的數(shù)據(jù)必須持續(xù)處理,即數(shù)據(jù)被攝取后需要立刻處理。我們不能等到所有數(shù)據(jù)都到達(dá)再處理,因?yàn)檩斎胧菬o限的,在任何時(shí)候輸入都不會(huì)完成。處理無界數(shù)據(jù)通常要求以特定順序攝取事件,例如事件發(fā)生的順序,以便能夠推斷結(jié)果的完整性。
2.有界流 有定義流的開始,也有定義流的結(jié)束。有界流可以在攝取所有數(shù)據(jù)后再進(jìn)行計(jì)算。有界流所有數(shù)據(jù)可以被排序,所以并不需要有序攝取。有界流處理通常被稱為批處理
Apache Flink 擅長(zhǎng)處理無界和有界數(shù)據(jù)集 精確的時(shí)間控制和狀態(tài)化使得 Flink 的運(yùn)行時(shí)(runtime)能夠運(yùn)行任何處理無界流的應(yīng)用。有界流則由一些專為固定大小數(shù)據(jù)集特殊設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)進(jìn)行內(nèi)部處理,產(chǎn)生了出色的性能。
部署應(yīng)用到任意地方
Apache Flink 是一個(gè)分布式系統(tǒng),它需要計(jì)算資源來執(zhí)行應(yīng)用程序。Flink 集成了所有常見的集群資源管理器,例如 Hadoop YARN、 Apache Mesos 和 Kubernetes,但同時(shí)也可以作為獨(dú)立集群運(yùn)行。
Flink 被設(shè)計(jì)為能夠很好地工作在上述每個(gè)資源管理器中,這是通過資源管理器特定(resource-manager-specific)的部署模式實(shí)現(xiàn)的。Flink 可以采用與當(dāng)前資源管理器相適應(yīng)的方式進(jìn)行交互。
部署 Flink 應(yīng)用程序時(shí),F(xiàn)link 會(huì)根據(jù)應(yīng)用程序配置的并行性自動(dòng)標(biāo)識(shí)所需的資源,并從資源管理器請(qǐng)求這些資源。在發(fā)生故障的情況下,F(xiàn)link 通過請(qǐng)求新資源來替換發(fā)生故障的容器。提交或控制應(yīng)用程序的所有通信都是通過 REST 調(diào)用進(jìn)行的,這可以簡(jiǎn)化 Flink 與各種環(huán)境中的集成。
運(yùn)行任意規(guī)模應(yīng)用
Flink 旨在任意規(guī)模上運(yùn)行有狀態(tài)流式應(yīng)用。因此,應(yīng)用程序被并行化為可能數(shù)千個(gè)任務(wù),這些任務(wù)分布在集群中并發(fā)執(zhí)行。所以應(yīng)用程序能夠充分利用無盡的 CPU、內(nèi)存、磁盤和網(wǎng)絡(luò) IO。而且 Flink 很容易維護(hù)非常大的應(yīng)用程序狀態(tài)。其異步和增量的檢查點(diǎn)算法對(duì)處理延遲產(chǎn)生最小的影響,同時(shí)保證精確一次狀態(tài)的一致性。
Flink 用戶報(bào)告了其生產(chǎn)環(huán)境中一些令人印象深刻的擴(kuò)展性數(shù)字
處理每天處理數(shù)萬億的事件。
應(yīng)用維護(hù)幾TB大小的狀態(tài)。
應(yīng)用在數(shù)千個(gè)內(nèi)核上運(yùn)行。
利用內(nèi)存性能
有狀態(tài)的 Flink 程序針對(duì)本地狀態(tài)訪問進(jìn)行了優(yōu)化。任務(wù)的狀態(tài)始終保留在內(nèi)存中,如果狀態(tài)大小超過可用內(nèi)存,則會(huì)保存在能高效訪問的磁盤數(shù)據(jù)結(jié)構(gòu)中。任務(wù)通過訪問本地(通常在內(nèi)存中)狀態(tài)來進(jìn)行所有的計(jì)算,從而產(chǎn)生非常低的處理延遲。Flink 通過定期和異步地對(duì)本地狀態(tài)進(jìn)行持久化存儲(chǔ)來保證故障場(chǎng)景下精確一次的狀態(tài)一致性。
“Flink基礎(chǔ)知識(shí)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。