《Apache Flink異軍突起受歡迎!》要點(diǎn):
本文介紹了Apache Flink異軍突起受歡迎!,希望對您有用。如果有疑問,可以聯(lián)系我們。
歡迎參與《Apache Flink異軍突起受歡迎!》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
大數(shù)據(jù)產(chǎn)業(yè)興盛期,說到大數(shù)據(jù)分析引擎,不少人第一時(shí)間會想起Spark、Impala等,然而,作為Apache頂級項(xiàng)目的Flink也是不少企業(yè)的選擇.它到底有什么優(yōu)勢呢?和Spark相比擬,它有什么更可取之處呢?且聽大圣眾包威客平臺一一道來.
一、寶劍露鋒芒——Apache Flink
作為Apache的頂級項(xiàng)目,Flink固然集眾多優(yōu)點(diǎn)于一身,包含快速、可靠可擴(kuò)展、完全兼容Hadoop、使用簡便、表現(xiàn)卓越.
1.快速
快,是Flink的主要特點(diǎn).利用基于內(nèi)存的數(shù)據(jù)流,并將迭代處置算法深度集成到系統(tǒng)的運(yùn)行時(shí)中,這樣,Flink使得系統(tǒng)能夠以極快的速度處置數(shù)據(jù)密集型和迭代任務(wù).
2.可靠、可擴(kuò)展
得益于Flink包括自己的內(nèi)存管理組件、序列化框架和類型推理引擎,所以,即使服務(wù)器內(nèi)存被耗盡,Flink也能夠很好地運(yùn)行.
3.完全兼容Hadoop
為什么開發(fā)者無需做任何修改,就能利用Flink運(yùn)行歷史遺留的MapReduce操作?這是因?yàn)镕link支持所有Hadoop的所有輸入/輸出格式和數(shù)據(jù)類型.另外,Flink包含基于Java和Scala的用于批量和基于流數(shù)據(jù)分析的API、優(yōu)化器和具有自定義內(nèi)存管理功能的分布式運(yùn)行時(shí)等,這也是它能夠完全兼容Hadoop的原因之一.
4.易用
讓人感到驚喜的是,在無需進(jìn)行任何配置的情況下,Flink內(nèi)置的優(yōu)化器就能夠以最高效的方式在各種環(huán)境中執(zhí)行程序.只必要三個(gè)命令,Flink就可以運(yùn)行在Hadoop的新MapReduce框架Yarn上.
5.表示卓越
作為一款優(yōu)秀的大數(shù)據(jù)分析引擎,Flink能夠利用Java或者Scala語言編寫出漂亮、類型平安和可為核心的代碼,并能夠在集群上運(yùn)行所寫程序.這樣,使得開發(fā)者可以在無需額外處理的情況下使用Java和Scala數(shù)據(jù)類型.
一言以蔽之,ApacheFlink具有分布式MapReduce一類平臺的高效性、靈活性和擴(kuò)展性,以及并行數(shù)據(jù)庫查詢優(yōu)化方案,同時(shí),它還支持批量和基于流的數(shù)據(jù)分析,并且提供了基于Java和Scala的API.總的來說,Flink是一個(gè)高效的、分布式的、基于Java實(shí)現(xiàn)的通用大數(shù)據(jù)分析引擎.
二、雙鋒互切磋——Apache Spark與Apache Flink
同樣作為流處理引擎,盡管ApacheSpark在大數(shù)據(jù)處理運(yùn)用中已經(jīng)十分著名,然而,沒有一款工具能夠處理所有問題.在一些特殊的情況下,ApacheFlink可能很好地彌補(bǔ)了ApacheSpark所未能涵蓋的地方.那么,應(yīng)該選哪一款作為企業(yè)的大數(shù)據(jù)分析引擎呢?我們可以通過兩者的異同比擬,做出最優(yōu)選擇.
相同之處:
1.兩者都能提供恰好一次的保證,即每條記錄都僅處置一次;
2.與其他處理系統(tǒng)(好比Storm)相比,它們都能提供一個(gè)非常高的吞吐量;
3.兩者都能夠提供自動(dòng)內(nèi)存管理;
4.它們的容錯(cuò)開銷都非常低.
分歧之處:
事實(shí)上,ApacheSpark和ApacheFlink的主要差別,就在于計(jì)算模型不同.所以,對于選擇ApacheSpark,還是ApacheFlink的問題上,實(shí)際上就釀成了計(jì)算模型的選擇.
要了解ApacheSpark與ApacheFlink的相異之處,首先要對如下三種計(jì)算模型有一個(gè)初步的理解:
批處置——基本上處置靜態(tài)數(shù)據(jù),一次讀入大量數(shù)據(jù)進(jìn)行處置并生成輸出.
微批處理——結(jié)合了批處理和持續(xù)流操作符,將輸入分成多個(gè)微批次進(jìn)行處理,從根本上講,微批處理是一個(gè)“收集然后處理”的計(jì)算模型.
持續(xù)流操作符——在數(shù)據(jù)到達(dá)時(shí)進(jìn)行處理,沒有任何數(shù)據(jù)收集或處理延遲.
實(shí)際中,Spark采用的是微批處理模型,而Flink采用的是基于操作符的連續(xù)流模型.隨著數(shù)據(jù)處理能力的提高,企業(yè)開始認(rèn)識到,信息的價(jià)值在數(shù)據(jù)產(chǎn)生的時(shí)候最高,他們希望在數(shù)據(jù)產(chǎn)生時(shí)處理數(shù)據(jù),這就是說需要一個(gè)實(shí)時(shí)處理系統(tǒng).當(dāng)需要實(shí)時(shí)處理時(shí),可以優(yōu)先選擇ApacheFlink.但也不是所有情況都需要實(shí)時(shí)系統(tǒng),這時(shí),ApacheSpark則是更優(yōu)的選擇.好比,在電信行業(yè),統(tǒng)計(jì)特定用戶使用的帶寬,微批處理可能是一個(gè)更高效的方案.
至于具體應(yīng)該怎么選,必要企業(yè)在延遲、吞吐量和可靠性等多個(gè)方面上去進(jìn)行權(quán)衡.
縱使科技日新月異,然而,適合的,才是最好的.
(更多年夜數(shù)據(jù)與商業(yè)智能領(lǐng)域干貨、或電子書,可添加個(gè)人微信號(dashenghuaer))
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/13023.html