五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

Flink簡介

  • Flink介紹
  • Flink是一個批處理和流處理結(jié)合的統(tǒng)一計算框架,其核心是一個提供了數(shù)據(jù)分發(fā)以及并行化計算的流數(shù)據(jù)處理引擎。它的最大亮點是流處理,是業(yè)界常見的開源流處理引擎。

  • Flink應(yīng)用場景
  • Flink適合的應(yīng)用場景是低時延的數(shù)據(jù)處理(Data Processing),高并發(fā)pipeline處理數(shù)據(jù),時延毫秒級,且兼具可靠性。

  • Flink技術(shù)棧
  • Flink技術(shù)棧如左圖所示。

Flink結(jié)構(gòu)

Flink整個系統(tǒng)包含三部分:

Flink整個系統(tǒng)包含三部分:

  • Client
  • Flink Client主要給用戶提供向Flink系統(tǒng)提交用戶任務(wù)(流式作業(yè))的能力。

  • TaskManager
  • Flink系統(tǒng)的業(yè)務(wù)執(zhí)行節(jié)點,執(zhí)行具體的用戶任務(wù)。TaskManager可以有多個,各個TaskManager都平等。

  • JobManager
  • Flink系統(tǒng)的管理節(jié)點,管理所有的TaskManager,并決策用戶任務(wù)在哪些Taskmanager執(zhí)行。JobManager在HA模式下可以有多個,但只有一個主JobManager。

Flink與Yarn的關(guān)系

Flink基于YARN的集群部署

Flink基于YARN的集群部署

  • Flink支持基于YARN管理的集群模式,在該模式下,F(xiàn)link作為YARN上的一個應(yīng)用,提交到Y(jié)ARN上執(zhí)行。

  • Flink YARN Client首先會檢驗是否有足夠的資源來啟動YARN集群,如果資源足夠的話,會將jar包、配置文件等上傳到HDFS。Flink YARN Client首先與YARN Resource Manager進行通信,申請啟動Application Master(以下簡稱AM)的Container,并啟動AM。等所有的YARN的Node Manager將HDFS上的jar包、配置文件下載后,則表示AM啟動成功。

  • AM在啟動的過程中會和YARN的RM進行交互,向RM申請需要的Task Manager Container,申請到Task Manager Container后,啟動TaskManager進程。

  • 在Flink YARN的集群中,AM與Flink JobManager在同一個Container中。AM會將JobManager的RPC地址通過HDFS共享的方式通知各個TaskManager,TaskManager啟動成功后,會向JobManager注冊。

  • 當(dāng)所有TaskManager都向JobManager注冊成功后,F(xiàn)link基于YARN的集群啟動成功,F(xiàn)link YARN Client就可以提交Flink Job到Flink JobManager,并進行后續(xù)的映射、調(diào)度和計算處理。

Flink關(guān)鍵特性

流式處理

高吞吐、高性能、低時延的實時流處理引擎,能夠提供ms級時延處理能力。

豐富的狀態(tài)管理

流處理應(yīng)用需要在一定時間內(nèi)存儲所接收到的事件或中間結(jié)果,以供后續(xù)某個時間點訪問并進行后續(xù)處理。Flink提供了豐富的狀態(tài)管理相關(guān)的特性支持,其中包括:

多種基礎(chǔ)狀態(tài)類型:Flink提供了多種不同數(shù)據(jù)結(jié)構(gòu)的狀態(tài)支持,如ValueState、ListState、MapState等。用戶可以基于業(yè)務(wù)模型選擇最高效、合適狀態(tài)類型。

豐富的State Backend:State Backend負(fù)責(zé)管理應(yīng)用程序的狀態(tài),并根據(jù)需要進行Checkpoint。Flink提供了不同State Backend,State可以存儲在內(nèi)存上或RocksDB等上,并支持異步以及增量的Checkpoint機制。

精確一次語義:Flink的Checkpoint和故障恢復(fù)能力保證了任務(wù)在故障發(fā)生前后的應(yīng)用狀態(tài)一致性,為某些特定的存儲支持了事務(wù)型輸出的功能,即使在發(fā)生故障的情況下,也能夠保證精確一次的輸出。

豐富的時間語義支持

時間是流處理應(yīng)用的重要組成部分,對于實時流處理應(yīng)用來說,基于時間語義的窗口聚合、檢測、匹配等運算是非常常見的。Flink提供了豐富的時間語義支持。

Event-time:使用事件本身自帶的時間戳進行計算,使亂序到達(dá)或延遲到達(dá)的事件處理變得更加簡單。

Watermark支持:Flink引入Watermark概念,用以衡量事件時間的發(fā)展。Watermark也為平衡處理時延和數(shù)據(jù)完整性提供了靈活的保障。當(dāng)處理帶有Watermark的事件流時,在計算完成之后仍然有相關(guān)數(shù)據(jù)到達(dá)時,F(xiàn)link提供了多種處理選項,如將數(shù)據(jù)重定向(side output)或更新之前完成的計算結(jié)果。

Processing-time和Ingestion-time支持。

高度靈活的流式窗口支持:Flink能夠支持時間窗口、計數(shù)窗口、會話窗口,以及數(shù)據(jù)驅(qū)動的自定義窗口,可以通過靈活的觸發(fā)條件定制,實現(xiàn)復(fù)雜的流式計算模式。

容錯機制

分布式系統(tǒng),單個task或節(jié)點的崩潰或故障,往往會導(dǎo)致整個任務(wù)的失敗。Flink提供了任務(wù)級別的容錯機制,保證任務(wù)在異常發(fā)生時不會丟失用戶數(shù)據(jù),并且能夠自動恢復(fù)。

Checkpoint:Flink基于Checkpoint實現(xiàn)容錯,用戶可以自定義對整個任務(wù)的Checkpoint策略,當(dāng)任務(wù)出現(xiàn)失敗時,可以將任務(wù)恢復(fù)到最近一次Checkpoint的狀態(tài),從數(shù)據(jù)源重發(fā)快照之后的數(shù)據(jù)。

Savepoint:一個Savepoint就是應(yīng)用狀態(tài)的一致性快照,Savepoint與Checkpoint機制相似,但Savepoint需要手動觸發(fā),Savepoint保證了任務(wù)在升級或遷移時,不丟失掉當(dāng)前流應(yīng)用的狀態(tài)信息,便于任何時間點的任務(wù)暫停和恢復(fù)。

Flink SQL

Table API和SQL借助了Apache Calcite來進行查詢的解析,校驗以及優(yōu)化,可以與DataStream和DataSet API無縫集成,并支持用戶自定義的標(biāo)量函數(shù),聚合函數(shù)以及表值函數(shù)。簡化數(shù)據(jù)分析、ETL等應(yīng)用的定義。

CEP in SQL

Flink允許用戶在SQL中表示CEP(Complex Event Processing)查詢結(jié)果以用于模式匹配,并在Flink上對事件流進行評估。