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

Flink簡介

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

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

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

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

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

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

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

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

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

Flink與Yarn的關(guān)系

Flink基于YARN的集群部署

Flink基于YARN的集群部署

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

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

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

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

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

Flink關(guān)鍵特性

流式處理

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

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

流處理應(yīng)用需要在一定時(shí)間內(nèi)存儲所接收到的事件或中間結(jié)果,以供后續(xù)某個(gè)時(shí)間點(diǎn)訪問并進(jìn)行后續(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ù)需要進(jìn)行Checkpoint。Flink提供了不同State Backend,State可以存儲在內(nèi)存上或RocksDB等上,并支持異步以及增量的Checkpoint機(jī)制。

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

豐富的時(shí)間語義支持

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

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

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

Processing-time和Ingestion-time支持。

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

容錯機(jī)制

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

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

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

Flink SQL

Table API和SQL借助了Apache Calcite來進(jìn)行查詢的解析,校驗(yàn)以及優(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上對事件流進(jìn)行評估。