重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
這篇文章主要介紹“Flink1.8.0新功能有哪些”,在日常操作中,相信很多人在Flink1.8.0新功能有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Flink1.8.0新功能有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司專注于襄陽網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供襄陽營銷型網(wǎng)站建設(shè),襄陽網(wǎng)站制作、襄陽網(wǎng)頁設(shè)計(jì)、襄陽網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造襄陽網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供襄陽網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
Flink1.8.0發(fā)布,主要改變?nèi)缦拢?/strong>
1.將會增量清除舊的State
2.對hadoop的支持發(fā)生改變
3.編程方面TableEnvironment棄用
4.Flink1.8將不發(fā)布帶有Hadoop的二進(jìn)制文件
更多詳細(xì)如下:
這次的發(fā)行版本討論了Flink 1.7和Flink 1.8之間發(fā)生變化的重要方面,例如配置,特性或依賴性。
狀態(tài)
1、使用TTL(生存時(shí)間)連續(xù)增量清除舊的Key狀態(tài)
我們在Flink 1.6(FLINK-9510)中為Key狀態(tài)引入了TTL(生存時(shí)間)。此功能允許在訪問時(shí)清理并使Key狀態(tài)條目無法訪問。另外,在編寫保存點(diǎn)/檢查點(diǎn)時(shí),現(xiàn)在也將清理狀態(tài)。Flink 1.8引入了對RocksDB狀態(tài)后端(FLINK-10471)和堆狀態(tài)后端(FLINK-10473)的舊條數(shù)的連續(xù)清理。這意味著舊的條數(shù)將(根據(jù)TTL設(shè)置)不斷被清理掉。
2、恢復(fù)保存點(diǎn)時(shí)對模式遷移的新支持
使用Flink 1.7.0, 我們在使用AvroSerializer(FLINK-10605)時(shí)添加了對更改狀態(tài)模式的支持。使用Flink1.8.0,我們在TypeSerializers將所有內(nèi)置遷移到新的序列化器快照抽象方面取得了很大進(jìn)展,該抽象理論上允許模式遷移。在Flink附帶的序列化程序中,我們現(xiàn)在支持PojoSerializer(FLINK-11485)和Java EnumSerializer (FLINK-11334)以及有限情況下的Kryo(FLINK-11323)的模式遷移格式。
3、保存點(diǎn)兼容性
TraversableSerializer 此序列化程序(FLINK-11539)中的更新,包含Scala的Flink 1.2中的保存點(diǎn)將不再與Flink 1.8兼容??梢酝ㄟ^升級到Flink 1.3和Flink 1.7之間的版本,然后再更新至Flink 1.8來解決此限制。
4、RocksDB版本沖突并切換到FRocksDB(FLINK-10471)
需要切換到名為FRocksDB的RocksDB的自定義構(gòu)建,因?yàn)樾枰猂ocksDB中的某些更改來支持使用TTL進(jìn)行連續(xù)狀態(tài)清理。FRocksDB的已使用版本基于RocksDB的升級版本5.17.2。對于Mac OS X,僅支持OS X版本> =10.13的RocksDB版本5.17.2。
Maven 依賴
1、使用Flink捆綁Hadoop庫的更改(FLINK-11266)
包含hadoop的便捷二進(jìn)制文件不再發(fā)布。
如果部署依賴于flink-shaded-hadoop2包含 flink-dist,則必須從下載頁面的可選組件部分手動下載并打包Hadoop jar并將其復(fù)制到/lib目錄中。另外一種方法,可以通過打包flink-dist和激活 include-hadoopmaven配置文件來構(gòu)建包含hadoop的Flink分發(fā)。
由于hadoop flink-dist默認(rèn)不再包含在內(nèi),因此指定-DwithoutHadoop何時(shí)打包flink-dist將不再影響構(gòu)建。
配置
1、TaskManager配置(FLINK-11716)
TaskManagers現(xiàn)在默認(rèn)綁定到主機(jī)IP地址而不是主機(jī)名。可以通過配置選項(xiàng)控制此行為taskmanager.network.bind-policy。如果你的Flink集群在升級后遇到莫名其妙的連接問題,嘗試設(shè)置taskmanager.network.bind-policy: name在flink-conf.yaml 返回前的1.8的設(shè)置行為。
Table API
1、直接表構(gòu)造函數(shù)使用的取消預(yù)測(FLINK-11447)
Flink 1.8不贊成Table在Table API中直接使用該類的構(gòu)造函數(shù)。此構(gòu)造函數(shù)以前將用于執(zhí)行與橫向表的連接。你現(xiàn)在應(yīng)該使用table.joinLateral()或 table.leftOuterJoinLateral()代替。這種更改對于將Table類轉(zhuǎn)換為接口是必要的,這將使Table API在未來更易于維護(hù)和更清潔。
2、引入新的CSV格式符(FLINK-9964)
此版本為符合RFC4180的CSV文件引入了新的格式符。新描述符可用作 org.apache.flink.table.descriptors.Csv。目前,這只能與Kafka一起使用。舊描述符可org.apache.flink.table.descriptors.OldCsv用于文件系統(tǒng)連接器。
3、靜態(tài)生成器方法在TableEnvironment(FLINK-11445)上的棄用
為了將API與實(shí)際實(shí)現(xiàn)分開,TableEnvironment.getTableEnvironment()不推薦使用靜態(tài)方法。你現(xiàn)在應(yīng)該使用 Batch/StreamTableEnvironment.create()。
4、表API Maven模塊中的更改(FLINK-11064)
之前具有flink-table依賴關(guān)系的用戶需要更新其依賴關(guān)系flink-table-planner以及正確的依賴關(guān)系flink-table-api-*,具體取決于是使用Java還是Scala: flink-table-api-java-bridge或者flink-table-api-scala-bridge。
5、更改為外部目錄表構(gòu)建器(FLINK-11522)
ExternalCatalogTable.builder()不贊成使用ExternalCatalogTableBuilder()。
6、更改為表API連接器jar的命名(FLINK-11026)
Kafka/elasticsearch7 sql-jars的命名方案已經(jīng)更改。在maven術(shù)語中,它們不再具有sql-jar限定符,而artifactId現(xiàn)在以前綴為例,flink-sql而不是flink例如flink-sql-connector-kafka。
7、更改為指定Null的方式(FLINK-11785)
現(xiàn)在Table API中的Null需要定義nullof(type)而不是Null(type)。舊方法已被棄用。
連接器
1、引入可直接訪問ConsumerRecord的新KafkaDeserializationSchema(FLINK-8354)
對于FlinkKafkaConsumers,我們推出了一個(gè)新的KafkaDeserializationSchema ,可以直接訪問KafkaConsumerRecord。這包含了該 KeyedSerializationSchema功能,該功能已棄用但目前仍可以使用。
2、FlinkKafkaConsumer現(xiàn)在將根據(jù)主題規(guī)范過濾恢復(fù)的分區(qū)(FLINK-10342)
從Flink 1.8.0開始,現(xiàn)在FlinkKafkaConsumer總是過濾掉已恢復(fù)的分區(qū),這些分區(qū)不再與要在還原的執(zhí)行中訂閱的指定主題相關(guān)聯(lián)。此行為在以前的版本中不存在FlinkKafkaConsumer。如果您想保留以前的行為。請使用上面的 disableFilterRestoredPartitionsWithSubscribedTopics()配置方法FlinkKafkaConsumer。
考慮這個(gè)例子:如果你有一個(gè)正在消耗topic的Kafka Consumer A,你做了一個(gè)保存點(diǎn),然后改變你的Kafka消費(fèi)者而不是從topic消費(fèi)B,然后從保存點(diǎn)重新啟動你的工作。在此更改之前,您的消費(fèi)者現(xiàn)在將使用這兩個(gè)主題A,B因?yàn)樗鎯υ谙M(fèi)者正在使用topic消費(fèi)的狀態(tài)A。通過此更改,您的使用者將僅B在還原后使用topic,因?yàn)槲覀兪褂门渲玫膖opic過濾狀態(tài)中存儲的topic。
其它接口改變:
1、從TypeSerializer接口(FLINK-9803)中刪除了canEqual()方法
這些canEqual()方法通常用于跨類型層次結(jié)構(gòu)進(jìn)行適當(dāng)?shù)南嗟刃詸z查。在TypeSerializer實(shí)際上并不需要這個(gè)屬性,因此該方法現(xiàn)已刪除。
2、刪除CompositeSerializerSnapshot實(shí)用程序類(FLINK-11073)
該CompositeSerializerSnapshot實(shí)用工具類已被刪除?,F(xiàn)在CompositeTypeSerializerSnapshot,你應(yīng)該使用復(fù)合序列化程序的快照,該序列化程序?qū)⑿蛄谢山o多個(gè)嵌套的序列化程序。
到此,關(guān)于“Flink1.8.0新功能有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!