日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Flink項(xiàng)目是大數(shù)據(jù)計(jì)算領(lǐng)域冉冉升起的一顆新星。大數(shù)據(jù)計(jì)算引擎的發(fā)展經(jīng)歷了幾個(gè)過程,從第1代的MapReduce,到第2代基于有向無環(huán)圖的Tez,第3代基于內(nèi)存計(jì)算的Spark,再到第4代的Flink。因?yàn)镕link可以基于Hadoop進(jìn)行開發(fā)和使用,所以Flink并不會(huì)取代Hadoop,而是和Hadoop緊密結(jié)合。

 

 

 

Flink主要包括DataStream API、DataSet API、Table API、SQL、Graph API和FlinkML等?,F(xiàn)在Flink也有自己的生態(tài)圈,涉及離線數(shù)據(jù)處理、實(shí)時(shí)數(shù)據(jù)處理、SQL操作、圖計(jì)算和機(jī)器學(xué)習(xí)庫等。

1.1 Flink原理分析

很多人是在2015年才聽到Flink這個(gè)詞的,其實(shí)早在2008年,F(xiàn)link的前身就已經(jīng)是柏林理工大學(xué)的一個(gè)研究性項(xiàng)目,在2014年這個(gè)項(xiàng)目被Apache孵化器所接受后,F(xiàn)link迅速成為ASF(Apache Software Foundation)的頂級(jí)項(xiàng)目之一。截至目前,F(xiàn)link的版本經(jīng)過了多次更新,本書基于1.6版本寫作。

Flink是一個(gè)開源的流處理框架,它具有以下特點(diǎn)。

  • 分布式:Flink程序可以運(yùn)行在多臺(tái)機(jī)器上。
  • 高性能:處理性能比較高。
  • 高可用:由于Flink程序本身是穩(wěn)定的,因此它支持高可用性(High Availability,HA)。
  • 準(zhǔn)確:Flink可以保證數(shù)據(jù)處理的準(zhǔn)確性。

Flink主要由JAVA代碼實(shí)現(xiàn),它同時(shí)支持實(shí)時(shí)流處理和批處理。對(duì)于Flink而言,作為一個(gè)流處理框架,批數(shù)據(jù)只是流數(shù)據(jù)的一個(gè)極限特例而已。此外,F(xiàn)link還支持迭代計(jì)算、內(nèi)存管理和程序優(yōu)化,這是它的原生特性。

由圖1.1可知,F(xiàn)link的功能特性如下。

  • 流式優(yōu)先:Flink可以連續(xù)處理流式數(shù)據(jù)。
  • 容錯(cuò):Flink提供有狀態(tài)的計(jì)算,可以記錄數(shù)據(jù)的處理狀態(tài),當(dāng)數(shù)據(jù)處理失敗的時(shí)候,能夠無縫地從失敗中恢復(fù),并保持Exactly-once。
  • 可伸縮:Flink中的一個(gè)集群支持上千個(gè)節(jié)點(diǎn)。
  • 性能:Flink支持高吞吐、低延遲。
阿里巴巴主推的 Flink 為什么火?

 

圖1.1 Flink的功能特性

在這里解釋一下,高吞吐表示單位時(shí)間內(nèi)可以處理的數(shù)據(jù)量很大,低延遲表示數(shù)據(jù)產(chǎn)生以后可以在很短的時(shí)間內(nèi)對(duì)其進(jìn)行處理,也就是Flink可以支持快速地處理海量數(shù)據(jù)。

1.2 Flink架構(gòu)分析

Flink架構(gòu)可以分為4層,包括Deploy層、Core層、API層和Library層,如圖1.2所示。

  • Deploy層:該層主要涉及Flink的部署模式,F(xiàn)link支持多種部署模式——本地、集群(Standalone/YARN)和云服務(wù)器(GCE/EC2)。
  • Core層:該層提供了支持Flink計(jì)算的全部核心實(shí)現(xiàn),為API層提供基礎(chǔ)服務(wù)。
  • API層:該層主要實(shí)現(xiàn)了面向無界Stream的流處理和面向Batch的批處理API,其中流處理對(duì)應(yīng)DataStream API,批處理對(duì)應(yīng)DataSet API。
  • Library層:該層也被稱為Flink應(yīng)用框架層,根據(jù)API層的劃分,在API層之上構(gòu)建的滿足特定應(yīng)用的實(shí)現(xiàn)計(jì)算框架,也分別對(duì)應(yīng)于面向流處理和面向批處理兩類。面向流處理支持CEP(復(fù)雜事件處理)、基于SQL-like的操作(基于Table的關(guān)系操作);面向批處理支持FlinkML(機(jī)器學(xué)習(xí)庫)、Gelly(圖處理)、Table 操作。

從圖1.2可知, Flink對(duì)底層的一些操作進(jìn)行了封裝,為用戶提供了DataStream API和DataSet API。使用這些API可以很方便地完成一些流數(shù)據(jù)處理任務(wù)和批數(shù)據(jù)處理 任務(wù)。

阿里巴巴主推的 Flink 為什么火?

 

圖1.2 Flink架構(gòu)

1.3 Flink基本組件

讀者應(yīng)該對(duì)Hadoop和Storm程序有所了解,在Hadoop中實(shí)現(xiàn)一個(gè)MapReduce需要兩個(gè)階段——Map和Reduce,而在Storm中實(shí)現(xiàn)一個(gè)Topology則需要Spout和Bolt組件。因此,如果我們想實(shí)現(xiàn)一個(gè)Flink任務(wù)的話,也需要有類似的邏輯。

Flink中提供了3個(gè)組件,包括DataSource、Transformation和DataSink。

  • DataSource:表示數(shù)據(jù)源組件,主要用來接收數(shù)據(jù),目前官網(wǎng)提供了readTextFile、socketTextStream、fromCollection以及一些第三方的Source。
  • Transformation:表示算子,主要用來對(duì)數(shù)據(jù)進(jìn)行處理,比如Map、FlatMap、Filter、Reduce、Aggregation等。
  • DataSink:表示輸出組件,主要用來把計(jì)算的結(jié)果輸出到其他存儲(chǔ)介質(zhì)中,比如writeAsText以及Kafka、redis、Elasticsearch等第三方Sink組件。

因此,想要組裝一個(gè)Flink Job,至少需要這3個(gè)組件。

Flink Job=DataSource+Transformation+DataSink

1.4 Flink流處理(Streaming)與批處理(Batch)

在大數(shù)據(jù)處理領(lǐng)域,批處理與流處理一般被認(rèn)為是兩種截然不同的任務(wù),一個(gè)大數(shù)據(jù)框架一般會(huì)被設(shè)計(jì)為只能處理其中一種任務(wù)。比如,Storm只支持流處理任務(wù),而MapReduce、Spark只支持批處理任務(wù)。Spark Streaming是Apache Spark之上支持流處理任務(wù)的子系統(tǒng),這看似是一個(gè)特例,其實(shí)不然——Spark Streaming采用了一種Micro-Batch架構(gòu),即把輸入的數(shù)據(jù)流切分成細(xì)粒度的Batch,并為每一個(gè)Batch數(shù)據(jù)提交一個(gè)批處理的Spark任務(wù),所以Spark Streaming本質(zhì)上還是基于Spark批處理系統(tǒng)對(duì)流式數(shù)據(jù)進(jìn)行處理,和Storm等完全流式的數(shù)據(jù)處理方式完全不同。

通過靈活的執(zhí)行引擎,F(xiàn)link能夠同時(shí)支持批處理任務(wù)與流處理任務(wù)。在執(zhí)行引擎層級(jí),流處理系統(tǒng)與批處理系統(tǒng)最大的不同在于節(jié)點(diǎn)間的數(shù)據(jù)傳輸方式。

如圖1.3所示,對(duì)于一個(gè)流處理系統(tǒng),其節(jié)點(diǎn)間數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)模型是,在處理完成一條數(shù)據(jù)后,將其序列化到緩存中,并立刻通過網(wǎng)絡(luò)傳輸?shù)较乱粋€(gè)節(jié)點(diǎn),由下一個(gè)節(jié)點(diǎn)繼續(xù)處理。而對(duì)于一個(gè)批處理系統(tǒng),其節(jié)點(diǎn)間數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)模型是,在處理完成一條數(shù)據(jù)后,將其序列化到緩存中,當(dāng)緩存寫滿時(shí),就持久化到本地硬盤上;在所有數(shù)據(jù)都被處理完成后,才開始將其通過網(wǎng)絡(luò)傳輸?shù)较乱粋€(gè)節(jié)點(diǎn)。

阿里巴巴主推的 Flink 為什么火?

 

圖1.3 Flink的3種數(shù)據(jù)傳輸模型

這兩種數(shù)據(jù)傳輸模式是兩個(gè)極端,對(duì)應(yīng)的是流處理系統(tǒng)對(duì)低延遲和批處理系統(tǒng)對(duì)高吞吐的要求。Flink的執(zhí)行引擎采用了一種十分靈活的方式,同時(shí)支持了這兩種數(shù)據(jù)傳輸模型。

Flink以固定的緩存塊為單位進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸,用戶可以通過設(shè)置緩存塊超時(shí)值指定緩存塊的傳輸時(shí)機(jī)。如果緩存塊的超時(shí)值為0,則Flink的數(shù)據(jù)傳輸方式類似于前面所提到的流處理系統(tǒng)的標(biāo)準(zhǔn)模型,此時(shí)系統(tǒng)可以獲得最低的處理延遲;如果緩存塊的超時(shí)值為無限大,則Flink的數(shù)據(jù)傳輸方式類似于前面所提到的批處理系統(tǒng)的標(biāo)準(zhǔn)模型,此時(shí)系統(tǒng)可以獲得最高的吞吐量。

緩存塊的超時(shí)值也可以設(shè)置為0到無限大之間的任意值,緩存塊的超時(shí)閾值越小,F(xiàn)link流處理執(zhí)行引擎的數(shù)據(jù)處理延遲就越低,但吞吐量也會(huì)降低,反之亦然。通過調(diào)整緩存塊的超時(shí)閾值,用戶可根據(jù)需求靈活地權(quán)衡系統(tǒng)延遲和吞吐量。

1.5 Flink典型應(yīng)用場(chǎng)景分析

Flink主要應(yīng)用于流式數(shù)據(jù)分析場(chǎng)景,目前涉及如下領(lǐng)域。

  • 實(shí)時(shí)ETL:集成流計(jì)算現(xiàn)有的諸多數(shù)據(jù)通道和SQL靈活的加工能力,對(duì)流式數(shù)據(jù)進(jìn)行實(shí)時(shí)清洗、歸并和結(jié)構(gòu)化處理;同時(shí),對(duì)離線數(shù)倉進(jìn)行有效的補(bǔ)充和優(yōu)化,并為數(shù)據(jù)實(shí)時(shí)傳輸提供可計(jì)算通道。
  • 實(shí)時(shí)報(bào)表:實(shí)時(shí)化采集、加工流式數(shù)據(jù)存儲(chǔ);實(shí)時(shí)監(jiān)控和展現(xiàn)業(yè)務(wù)、客戶各類指標(biāo),讓數(shù)據(jù)化運(yùn)營(yíng)實(shí)時(shí)化。
  • 監(jiān)控預(yù)警:對(duì)系統(tǒng)和用戶行為進(jìn)行實(shí)時(shí)檢測(cè)和分析,以便及時(shí)發(fā)現(xiàn)危險(xiǎn)行為。
  • 在線系統(tǒng):實(shí)時(shí)計(jì)算各類數(shù)據(jù)指標(biāo),并利用實(shí)時(shí)結(jié)果及時(shí)調(diào)整在線系統(tǒng)的相關(guān)策略,在各類內(nèi)容投放、無線智能推送領(lǐng)域有大量的應(yīng)用。

Flink在如下類型的公司中有具體的應(yīng)用。

  • 優(yōu)化電商網(wǎng)站的實(shí)時(shí)搜索結(jié)果:阿里巴巴的基礎(chǔ)設(shè)施團(tuán)隊(duì)使用Flink實(shí)時(shí)更新產(chǎn)品細(xì)節(jié)和庫存信息(Blink)。
  • 針對(duì)數(shù)據(jù)分析團(tuán)隊(duì)提供實(shí)時(shí)流處理服務(wù):通過Flink數(shù)據(jù)分析平臺(tái)提供實(shí)時(shí)數(shù)據(jù)分析服務(wù),及時(shí)發(fā)現(xiàn)問題。
  • 網(wǎng)絡(luò)/傳感器檢測(cè)和錯(cuò)誤檢測(cè):Bouygues電信公司是法國(guó)著名的電信供應(yīng)商,使用Flink監(jiān)控其有線和無線網(wǎng)絡(luò),實(shí)現(xiàn)快速故障響應(yīng)。
  • 商業(yè)智能分析ETL:Zalando使用Flink轉(zhuǎn)換數(shù)據(jù)以便于將其加載到數(shù)據(jù)倉庫,簡(jiǎn)化復(fù)雜的轉(zhuǎn)換操作,并確保分析終端用戶可以更快地訪問數(shù)據(jù)(實(shí)時(shí)ETL)。

分享到:
標(biāo)簽:阿里巴巴
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定