真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ApacheFlink1.11功能有哪些呢

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Apache Flink 1.11 功能有哪些呢,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供移動(dòng)服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

Flink 1.11 在 1.10 的基礎(chǔ)上對(duì)許多方面進(jìn)行了完善和改進(jìn),并致力于進(jìn)一步提高 Flink 的可用性及性能。

下面將詳細(xì)介紹 1.11 版本的新功能、改進(jìn)、重要變化及未來的發(fā)展計(jì)劃。

在集群部署方面

1.[FLIP-85] Flink 支持 Application Mode

目前 Flink 是通過一個(gè)單獨(dú)的客戶端來創(chuàng)建 JobGraph 并提交作業(yè)的,在實(shí)際使用時(shí),會(huì)產(chǎn)生下載作業(yè) jar 包占用客戶端機(jī)器大量帶寬、需要啟動(dòng)單獨(dú)進(jìn)程(占用不受管理的資源)作為客戶端等問題。為了解決這些問題,在 Flink-1.11 中提供了一種新的 Application 模式,它將 JobGraph 的生成以及作業(yè)的提交轉(zhuǎn)移到 Master 節(jié)點(diǎn)進(jìn)行。

用戶可以通過 bin/flink run-application 來使用 application 模式。目前 Application 模式支持 Yarn 和 K8s 的部署方式,Yarn Application 模式會(huì)在客戶端將運(yùn)行任務(wù)需要的依賴都通過 Yarn Local Resource 傳遞到 Flink Master,然后在 Master 端進(jìn)行任務(wù)的提交。K8s Application 允許用戶構(gòu)建包含用戶 Jar 與依賴的鏡像,同時(shí)會(huì)根據(jù) job 自動(dòng)創(chuàng)建 TaskManager,并在結(jié)束后銷毀整個(gè) Cluster。

2.  [Flink-13938] [Flink-17632] Flink Yarn 支持遠(yuǎn)程 Flink lib Jar 緩存和使用遠(yuǎn)程 Jar 創(chuàng)建作業(yè)

1.11 之前 Flink 在 Yarn 上每提交一個(gè)作業(yè)都需要上傳一次 Flink lib 下的 Jars,從而耗費(fèi)額外的存儲(chǔ)空間和通信帶寬。Flink-1.11 允許用戶提供多個(gè)遠(yuǎn)程的 lib 目錄,這些目錄下的文件會(huì)被緩存到 Yarn 的節(jié)點(diǎn)上,從而避免不必要的 Jar 包上傳與下載,使提交和啟動(dòng)更快:

./bin/flink run -m yarn-cluster -d \-yD yarn.provided.lib.dirs=hdfs://myhdfs/flink/lib,hdfs://myhdfs/flink/plugins \examples/streaming/WindowJoin.jar

此外,1.11 還允許用戶直接使用遠(yuǎn)程文件系統(tǒng)上的 Jar 包來創(chuàng)建作業(yè),從而進(jìn)一步減少 Jar 包下載的開銷:

./bin/flink run-application -p 10 -t yarn-application \-yD yarn.provided.lib.dirs="hdfs://myhdfs/flink/lib" \hdfs://myhdfs/jars/WindowJoin.jar

3.  [Flink-14460] Flink K8s 功能增強(qiáng)

在 1.11 中,F(xiàn)link 對(duì) K8s 除支持 FLIP-85 提出的 Application 模式,相比于 Session 模式,它具有更好的隔離性。

此外,F(xiàn)link 還新增了一些功能用以支持 K8s 的特性,例如 Node Selector,Label,Annotation,Toleration 等。為了更方便的與 Hadoop 集成,也支持根據(jù)環(huán)境變量自動(dòng)掛載 Hadoop 配置的功能。

4.  [FLIP-111] docker 鏡像統(tǒng)一

之前 Flink 項(xiàng)目中提供了多個(gè)不同的 Dockerfile 用來創(chuàng)建 Flink 的 Docker 鏡像,現(xiàn)在他們被統(tǒng)一到了 apache/flink-docker  [1] 項(xiàng)目中。

5.  [Flink-15911][Flink-15154] 支持分別配置用于本地監(jiān)聽綁定的網(wǎng)絡(luò)接口和外部訪問的地址和端口

在部分使用場景中(例如 Docker、NAT 端口映射),JM/TM 進(jìn)程看到的本地網(wǎng)絡(luò)地址、端口,和其他進(jìn)程用于從外部訪問該進(jìn)程的地址、端口可能是不一樣的。之前 Flink 不允許用戶為 TM/JM 設(shè)置不同的本地和遠(yuǎn)程地址,使 Flink 在 Docker 等使用的 NAT 網(wǎng)絡(luò)中存在問題,并且不能限制監(jiān)聽端口的暴露范圍。

1.11 中為本地和遠(yuǎn)程的監(jiān)聽地址和端口引入了不同的參數(shù)。其中:

* jobmanager.rpc.address
* jobmanager.rpc.port
* taskmanager.host
* taskmanager.rpc.port
* taskmanager.data.port

用來配置遠(yuǎn)程的監(jiān)聽地址和端口,

* jobmanager.bind-host
* jobmanager.rpc.bind-port
* taskmanager.bind-host
* taskmanager.rpc.bind-port
* taskmanager.data.bind-port

用來配置本地的監(jiān)聽地址和端口。

   

在資源管理方面


 

1.  [Flink-16614] 統(tǒng)一 JM 端內(nèi)存資源配置

Flink-1.10 中的一個(gè)大的改動(dòng)是重新定義了 TM 內(nèi)存模型與配置規(guī)則[2]。Flink 1.11 進(jìn)一步對(duì) JM 內(nèi)存模型與配置規(guī)則進(jìn)行了調(diào)整,使 JM 的內(nèi)存配置方式與 TM 統(tǒng)一:

Apache Flink 1.11 功能有哪些呢

具體的內(nèi)存配置方式可以參考相應(yīng)的用戶文檔[3]。

2.  [FLIP-108] 增加對(duì)擴(kuò)展資源(如 GPU)的調(diào)度支持

隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的發(fā)展,越來越多的 Flink 作業(yè)會(huì)嵌入機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型,從而產(chǎn)生對(duì) GPU 資源的需求。1.11 之前 Flink 不支持對(duì) GPU 這樣的擴(kuò)展資源進(jìn)行管理。為了解決這一部分,在 1.11 中,F(xiàn)link 提供了對(duì)擴(kuò)展資源的統(tǒng)一管理框架,并基于這一框架內(nèi)置了對(duì) GPU 資源的支持。

關(guān)于擴(kuò)展資源管理框架和 GPU 資源管理的進(jìn)一步配置,可以參考相應(yīng)的 FLIP 頁面:https://cwiki.apache.org/confluence/display/FLINK/FLIP-108%3A+Add+GPU+support+in+Flink的Publlic interface 部分(相應(yīng)的用戶文檔社區(qū)正在編寫中,后續(xù)可以參考對(duì)應(yīng)的用戶文檔)。

3.  [FLINK-16605] 允許用戶限制 Batch 作業(yè)的最大 slot 數(shù)量

為了避免 Flink Batch 作業(yè)占用過多的資源,F(xiàn)link-1.11 引入了一個(gè)新的配置項(xiàng):slotmanager.number-of-slots.max,它可以限定整個(gè) Flink 集群 Slot 的最大數(shù)量。這一參數(shù)只推薦用于使用了 Blink Planner 的 Batch Table / SQL 作業(yè)。

   

Flink-1.11 WEB UI 的增強(qiáng)


 

1.  [FLIP-103] 改善 Web UI 上 JM/TM 日志的展示

之前用戶只能通過 Web UI 讀取 .log 和 .out 日志,但是實(shí)際上在日志目錄下可能還存在著其它文件,如 GC log 等。新版界面允許用戶訪問日志目錄下的所有日志。此外,還增加了日志重新加載、下載和全屏展示的功能。

2.  [FLIP-99] 允許展示更多的歷史 Failover 異常

之前對(duì)于單個(gè)作業(yè),Web UI 只能展示單個(gè) 20 條歷史 Failover 異常,在作業(yè)頻繁 Failover 時(shí),最開始的異常(更有可能是 root cause)很快會(huì)被淹沒,從而增加排查的難度。新版的 WEB UI 支持分頁展示更多的歷史異常。

Apache Flink 1.11 功能有哪些呢

3.  [Flink-14816] 允許用戶直接在頁面上進(jìn)行 Thread Dump

Thread Dump 對(duì)一些作業(yè)的問題定位非常有幫助,1.11 之前用戶必須要登錄到 TM 所在機(jī)器來執(zhí)行 Thread Dump 操作。1.11 的 WEB UI 集成了這一功能,它增加了 Thread dump 標(biāo)簽頁,允許用戶直接通過 WEB UI 來獲得 TM 的 Thread Dump。

Apache Flink 1.11 功能有哪些呢

 

Source & Sink

1.  [FLIP-27] 新的 Source API

FLIP-27 是 1.11 中一個(gè)較大的 Feature。Flink 傳統(tǒng)的 Source 接口存在一定的問題,例如需要為流作業(yè)和批作業(yè)分別實(shí)現(xiàn)不同的 Source、沒有統(tǒng)一的數(shù)據(jù)分區(qū)發(fā)現(xiàn)邏輯、需要 Source 實(shí)現(xiàn)者自己處理加鎖邏輯以及沒有提供公共架構(gòu)使得 Source 開發(fā)者必須要手動(dòng)處理多線程等問題。這些問題增加了 Flink 中實(shí)現(xiàn) Source 的難度。

FLIP-27 引入了一套全新的 Source 的接口。這套接口提供了統(tǒng)一的數(shù)據(jù)分區(qū)發(fā)現(xiàn)和管理等功能,用戶只需要集中在分區(qū)信息讀取和數(shù)據(jù)讀取等邏輯,而不需要再處理復(fù)雜線程同步問題,從而極大的簡化了 Source 實(shí)現(xiàn)的負(fù)擔(dān),也為后續(xù)為 Source 提供更多內(nèi)置功能提供了基礎(chǔ)。

2.  [FLINK-11395][Flink-10114] Streaming File Sink 新增對(duì) Avro 和 ORC 格式的支持

對(duì)于常用的 StreamingFileSink,1.11 新增了對(duì) Avro 和 ORC 兩種常用文件格式的支持。

Avro:

stream.addSink(StreamingFileSink.forBulkFormat(   Path.fromLocalFile(folder),   AvroWriters.forSpecificRecord(Address.class)).build());

ORC:

OrcBulkWriterFactory factory = new OrcBulkWriterFactory<>(        new RecordVectorizer(schema), writerProps, new Configuration());Stream.addSink(StreamingFileSink      .forBulkFormat(new Path(outDir.toURI()), factory)      .build());

State 管理

1.  [FLINK-5763] 修改 Savepoint 的文件結(jié)構(gòu),使 Savepoint 可以自包含和移動(dòng)

Flink-1.11 將 Savepoint 中的文件絕對(duì)路徑替換為相對(duì)路徑,從而使用戶可以直接移動(dòng) Savepoint 的位置,而不需要再手動(dòng)修改 meta 中的路徑(注:在 S3 文件系統(tǒng)中啟用 Entropy Injection 后不支持該功能)。

2.  [FLINK-8871] 增加 Checkpoint 失敗的回調(diào)并通知 TM 端

Flink 1.11之前提供了Checkpoint成功的通知。在1.11中新增了Checkpoint失敗時(shí)通知TM端的機(jī)制,一方面可以取消正在進(jìn)行中的Checkpoint,另外用戶通過CheckpointListener新增的notifyCheckpointAborted接口也可以收到對(duì)應(yīng)的通知。

3.  [FLINK-12692] heap keyed Statebackend 支持溢出數(shù)據(jù)到磁盤

(該功能實(shí)際并未合并到 Flink 1.11 代碼,但是用戶可以從 https://flink-packages.org/packages/spillable-state-backend-for-flink下載試用。

對(duì)于 Heap Statebackend,由于它將 state 直接以 Java 對(duì)象的形式維護(hù),因此它可以獲得較好的性能。但是,之前它 Heap State backend 占用的內(nèi)存是不可控的,因引可以導(dǎo)致嚴(yán)重的 GC 問題。

為了解決這一問題,SpillableKeyedStateBackend 支持將數(shù)據(jù)溢出到磁盤,從而允許 Statebackend 限制所使用的內(nèi)存大小。關(guān)于 SpillableKeyedStateBackend 的更多信息,可以參考 https://flink-packages.org/packages/spillable-state-backend-for-flink。

4.  [Flink-15507] 對(duì) Rocksdb Statebackend 默認(rèn)啟用 Local Recovery

默認(rèn)啟用 Local Recovery 后可以加速 Failover 的速度。

5.  修改 state.backend.fs.memory-threshold 參數(shù)默認(rèn)值到 20k

(這部分工作還在進(jìn)行中,但是應(yīng)該會(huì)包含在 1.11 中)

state.backend.fs.memory-threshold 決定了 FS Statebackend 中什么時(shí)候需要將 State 數(shù)據(jù)寫出去內(nèi)存中。之前默認(rèn)的 1k 在許多情況下會(huì)導(dǎo)致大量小文件的問題并且會(huì)影響 State 訪問的性能,因此在 1.11 中該值被提高到了 20k。需要特別注意的是,這一改動(dòng)可能會(huì)提高JM內(nèi)存的使用量,尤其是在算子并發(fā)較大或者使用了UnionState的情況下。[4]

Table & SQL

1.  [FLIP-65] 優(yōu)化 Table API UDF 中的類型推斷機(jī)制

相對(duì)于之前的類型推斷機(jī)制,新版的類型推斷機(jī)制可以提供關(guān)于輸入?yún)?shù)的更多類型信息,從而允許用戶實(shí)現(xiàn)更靈活的處理邏輯。目前這一功能提供了對(duì) UDF 和 UTF 的支持,但暫時(shí)還不支持 UDAF。

2.  [FLIP-84] 優(yōu)化 TableEnvironment 的接口

Flink-1.11 對(duì)于 TableEnv 在以下方面進(jìn)行了增強(qiáng):

  1. 以前 sqlUpdatec 對(duì)于 DDL 和 DML 的行為不同一,前者會(huì)立刻執(zhí)行,后者則需要等到 env.execute 時(shí)執(zhí)行。1.11 統(tǒng)一為 env.execute 的時(shí)候執(zhí)行。
  2. 提供了對(duì)需要返回結(jié)果的查詢的支持,如 show table, explain sql 等。
  3. 提供了對(duì)緩存多條SQL語句執(zhí)行的支持。
  4. 新增了collect方法允許用戶獲得查詢執(zhí)行結(jié)果

3.  [FLIP-93] 支持基于 JDBC 和 Postgres的Catalog

1.11 之前用戶使用Flink讀取/寫入關(guān)系型數(shù)據(jù)庫或讀取 Change Log 時(shí),需要手動(dòng)將數(shù)據(jù)庫的表模式復(fù)制到 Flink 中。這一過程枯燥乏味且容易錯(cuò),從而較大的的提高了用戶的使用成本。1.11 提供了基于 JDBC 和 Postgres 的 Catalog 管理,使 Flink 可以自動(dòng)讀取表模式,從而減少了用戶的手工操作。

4.  [FLIP-105] 增加對(duì) ChangeLog 源的支持

通過 Change Data Capture 機(jī)制(CDC)來將外部系統(tǒng)的動(dòng)態(tài)數(shù)據(jù)(如 MySQL BinLog,Kafka Compacted Topic)導(dǎo)入 Flink,以及將 Flink 的 Update/Retract 流寫出到外部系統(tǒng)中是用戶一直希望的功能。Flink-1.11 實(shí)現(xiàn)了對(duì) CDC 數(shù)據(jù)讀取和寫出的支持。目前 Flink 可以支持 Debezium 和 Canal 兩種 CDC 格式。

5.  [FLIP-95] 新的 TableSource 和 TableSink 接口

簡化了當(dāng)前 Table Source/Sink 的接口結(jié)構(gòu),為支持 CDC 功能提供了基礎(chǔ),避免了對(duì) DataStream API 的依賴以及解決只有 Blink Planner 可以支持高效的 Source/Sink 實(shí)現(xiàn)的問題。

更具體接口變化可以參考:

https://cwiki.apache.org/confluence/display/FLINK/FLIP-95%3A+New+TableSource+and+TableSink+interfaces

6.  [FLIP-122] 修改 Connector 配置項(xiàng)

FLIP-122 重新整理了 Table/SQL Connector 的”With”配置項(xiàng)。由于歷史原因,With 配置項(xiàng)有一些冗余或不一致的地方,例如所有的配置項(xiàng)都以 connector. 開頭以及不同的配置項(xiàng)名稱模式等。修改后的配置項(xiàng)解決了這些冗余和不一致的問題。(需要強(qiáng)調(diào)的是,現(xiàn)有的配置項(xiàng)仍然可以正常使用)。

關(guān)于新的配置項(xiàng)的列表,可以參考:

https://cwiki.apache.org/confluence/display/FLINK/FLIP-122%3A+New+Connector+Property+Keys+for+New+Factory

7.  [FLIP-113] Flink SQL 支持動(dòng)態(tài) Table 屬性

動(dòng)態(tài) Table 屬性允許用戶在使用表時(shí)動(dòng)態(tài)的修改表的配置項(xiàng),從而避免用戶由于配置項(xiàng)變化而需要重新聲明表的 DDL 的麻煩。如下所示,動(dòng)態(tài)屬性允許用戶在執(zhí)行查詢時(shí)通過 /*+ OPTIONS(‘k1’=’v1’)*/ 的語法來覆蓋 DDL 中的屬性值。

SELECT *FROM  EMP /*+ OPTIONS('k1'='v1', 'k2'='v2') */  JOIN  DEPT /*+ OPTIONS('a.b.c'='v3', 'd.e.f'='v4') */ON  EMP.deptno = DEPT.deptno

 

8.  [FLIP-115] 增加 Flink SQL 對(duì) Hive 的支持

  1. 對(duì)于 FileSystem Connector 提供了對(duì) csv/orc/parquet/json/avro 五種格式的支持,以及對(duì) Batch 和 Streaming FileSystem Connector 的完整支持。

  2. 提供了對(duì) Hive Streaming Sink 的支持。

9.  [FLIP-123] 支持兼容 Hive 的 DDL 和 DML 語句

FLIP-123 提供了對(duì) Hive 方言的支持,它使用戶可以使用 Hive 的 DDL 和 DML 來進(jìn)行操作。

DataStream API

1.  [FLIP-126] 優(yōu)化 Source 的 WatermarkAssigner 接口

(注意這部分工作已經(jīng)完成,但是是否要包括在 1.11 中仍在討論中)

新的 WatermarkAssigner 接口將之前的 AssignerWithPunctuatedWatermarks 和 AssignerWithPeriodicWatermarks 的兩類 Watermark 的接口進(jìn)行了整合,從而簡化了后續(xù)開發(fā)支持插入 Watermark 的 Source 實(shí)現(xiàn)復(fù)雜度。

2.  [FLIP-92] 支持超過兩個(gè)輸入的 Operator

Flink 1.11 提供了對(duì)多輸入 Operator 的支持。但是,目前這一功能并沒有提供完整的 DataStream API 的接口,用戶如果想要使用的話,需要通過手動(dòng)創(chuàng)建 MultipleInputTransformation 與 MultipleConnectedStreams 的方式進(jìn)行:

MultipleInputTransformation transform = new MultipleInputTransformation<>(   "My Operator",   new SumAllInputOperatorFactory(),   BasicTypeInfo.LONG_TYPE_INFO,   1);
env.addOperator(transform   .addInput(source1.getTransformation())   .addInput(source2.getTransformation())   .addInput(source3.getTransformation()));
new MultipleConnectedStreams(env)   .transform(transform)   .addSink(resultSink);

PyFlink & ML

1. [FLINK-15636] 在 Flink Planner 的 batch 模式下支持 Python UDF 的運(yùn)行

在此之前,Python UDF 可以運(yùn)行在 Blink Planner 的流、批和 Flink Planner 的流模式下。支持后,兩個(gè) Planner 的流批模式都支持 Python UDF 的運(yùn)行。

2. [FLINK-14500] Python UDTF 的支持

UDTF 支持單條寫入多條輸出。兩個(gè) Planner 的流批模式都支持 Python UDTF 的運(yùn)行。

3. [FLIP-121] 通過 Cython 來優(yōu)化 Python UDF 的執(zhí)行效率

用 Cython 優(yōu)化了 Coder(序列化、反序列化)和 Operation 的計(jì)算邏輯,端到端的性能比 1.10 版本提升了數(shù)十倍。

4. [FLIP-97] Pandas UDF 的支持

Pandas UDF 以 pandas.Series 作為輸入和輸出類型,支持批量處理數(shù)據(jù)。一般而言,Pandas UDF 比普通 UDF 的性能要更好,因?yàn)闇p少了 Java 和 Python 進(jìn)程之間數(shù)據(jù)交互的序列化和反序列化開銷,同時(shí)由于可以批量處理數(shù)據(jù),也減少了 Python UDF 調(diào)用次數(shù)和調(diào)用開銷。除此之外,用戶使用 Pandas UDF 時(shí),可以更方便自然地使用 Pandas 相關(guān)的 Python 庫。

5. [FLIP-120] 支持 PyFlink Table 和 Pandas DataFrame 之間的轉(zhuǎn)換

用戶可以使用 Table 對(duì)象上的 to_pandas() 方法返回一個(gè)對(duì)應(yīng)的 Pandas DataFrame 對(duì)象,或通過 from_pandas() 方法將一個(gè) Pandas DataFrame 對(duì)象轉(zhuǎn)換成一個(gè) Table 對(duì)象。

import pandas as pdimport numpy as np
# Create a PyFlink Tablepdf = pd.DataFrame(np.random.rand(1000, 2))table = t_env.from_pandas(pdf, ["a", "b"]).filter("a > 0.5")
# Convert the PyFlink Table to a Pandas DataFramepdf = table.to_pandas()

6. [FLIP-112] 支持在 Python UDF 里定義用戶自定義 Metric

目前支持 4 種自定義的 Metric 類型,包括:Counter, Gauges, Meters 和 Distributions。同時(shí)支持定義 Metric 相應(yīng)的 User Scope 和 User Variables。

7. [FLIP-106][FLIP-114] 在 SQL DDL 和 SQL client 里支持 Python UDF 的使用

在此之前,Python UDF 只能在 Python Table API 里使用。支持 DDL 的方式注冊(cè) Python UDF 后,SQL 用戶也能方便地使用 Python UDF。除此之外,也對(duì) SQL Client 進(jìn)行了 Python UDF 的支持,支持 Python UDF 注冊(cè)及對(duì) Python UDF 的依賴進(jìn)行管理。

8. [FLIP-96] 支持 Python Pipeline API

Flink 1.9 里引入了一套新的 ML Pipeline API 來增強(qiáng) Flink ML 的易用性和可擴(kuò)展性。由于 Python 語言在 ML 領(lǐng)域的廣泛使用,F(xiàn)LIP-96 提供了一套相應(yīng)的 Python Pipeline API,以方便 Python  用戶。

運(yùn)行時(shí)優(yōu)化

1.  [FLIP-76] 支持 Unaligned Checkpoint

Flink 現(xiàn)有的 Checkpoint 機(jī)制下,每個(gè)算子需要等到收到所有上游發(fā)送的 Barrier 對(duì)齊后才可以進(jìn)行 Snapshot 并繼續(xù)向后發(fā)送 barrier。在反壓的情況下,Barrier 從上游算子傳送到下游可能需要很長的時(shí)間,從而導(dǎo)致 Checkpoint 超時(shí)的問題。

針對(duì)這一問題,F(xiàn)link 1.11 增加了 Unaligned Checkpoint 機(jī)制。開啟 Unaligned Checkpoint 后當(dāng)收到第一個(gè) barrier 時(shí)就可以執(zhí)行 checkpoint,并把上下游之間正在傳輸?shù)臄?shù)據(jù)也作為狀態(tài)保存到快照中,這樣 checkpoint 的完成時(shí)間大大縮短,不再依賴于算子的處理能力,解決了反壓場景下 checkpoint 長期做不出來的問題。

可以通過 env.getCheckpointConfig().enableUnalignedCheckpoints();開啟unaligned Checkpoint 機(jī)制。

2.  [FLINK-13417] 支持 Zookeeper 3.5

支持 Flink 與 ZooKeeper 3.5 集成。這將允許用戶使用一些新的 Zookeeper 功能,如 SSL 等。

3.  [FLINK-16408] 支持 Slot 級(jí)別的 Classloder 復(fù)用

Flink 1.11 修改了 TM 端 ClassLoader 的加載邏輯:與之前每次 Failover 后都會(huì)創(chuàng)建新的 ClassLoader 不同,1.11 中只要有這個(gè)作業(yè)占用的 Slot,相應(yīng)的 ClassLoader 就會(huì)被緩存。這一修改對(duì)作業(yè) Failover 的語義有一定的影響,因?yàn)?Failover 后 Static 字段不會(huì)被重新加載,但是它可以避免大量創(chuàng)建 ClassLoader 導(dǎo)致 JVM meta 內(nèi)存耗盡的問題。

4.  [FLINK-15672] 升級(jí)日志系統(tǒng)到 log4j 2

Flink 1.11 將日志系統(tǒng) Log4j 升級(jí)到 2.x,從而可以解決 Log4j 1.x 版本存在的一些問題并使用 2.x 的一些新功能。

5.  [FLINK-10742] 減少 TM 接收端的數(shù)據(jù)拷貝次數(shù)和內(nèi)存占用

Flink-1.11 在下游網(wǎng)絡(luò)接收數(shù)據(jù)時(shí),通過復(fù)用 Flink 自身的 buffer 內(nèi)存管理,減少了 netty 層向 Flink buffer 的內(nèi)存拷貝以及因此帶來的 direct memory 的額外開銷,從而減少了線上作業(yè)發(fā)生 Direct Memory OOM 或者 Container 因?yàn)閮?nèi)存超用被 Kill 的機(jī)率。

上述就是小編為大家分享的Apache Flink 1.11 功能有哪些呢了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章題目:ApacheFlink1.11功能有哪些呢
文章鏈接:http://weahome.cn/article/jjscgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部