自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

102萬行代碼,1270個問題,F(xiàn)link新版發(fā)布了什么?

大數(shù)據(jù)
Apache Flink 是公認(rèn)的新一代開源大數(shù)據(jù)計算引擎,可以支持流處理、批處理和機器學(xué)習(xí)等多種計算形態(tài),也是Apache 軟件基金會和 GitHub 社區(qū)最為活躍的項目之一。

 [[315951]]

阿里妹導(dǎo)讀:Apache Flink 是公認(rèn)的新一代開源大數(shù)據(jù)計算引擎,可以支持流處理、批處理和機器學(xué)習(xí)等多種計算形態(tài),也是Apache 軟件基金會和 GitHub 社區(qū)最為活躍的項目之一。

2019 年 1 月,阿里巴巴實時計算團隊宣布將經(jīng)過雙十一歷練和集團內(nèi)部業(yè)務(wù)打磨的 Blink 引擎進行開源并向 Apache Flink 貢獻代碼,此后的一年中,阿里巴巴實時計算團隊與 Apache Flink 社區(qū)密切合作,持續(xù)推進 Flink 對 Blink 的整合。

2 月 12 日,Apache Flink 1.10.0 正式發(fā)布,在 Flink 的第一個雙位數(shù)版本中正式完成了 Blink 向 Flink 的合并。在此基礎(chǔ)之上,F(xiàn)link 1.10 版本在生產(chǎn)可用性、功能、性能上都有大幅提升。本文將詳細(xì)為大家介紹該版本的重大變更與新增特性。文末更有 Flink 實踐精選電子書,現(xiàn)已開放免費下載~

下載地址:https://flink.apache.org/downloads.html

Flink 1.10 是迄今為止規(guī)模最大的一次版本升級,除標(biāo)志著 Blink 的合并完成外,還實現(xiàn)了 Flink 作業(yè)的整體性能及穩(wěn)定性的顯著優(yōu)化、對原生 Kubernetes 的初步集成以及對 Python 支持(PyFlink)的重大優(yōu)化等。

綜述

Flink 1.10.0 版本一共有 218 名貢獻者,解決了 1270 個 JIRA issue,經(jīng)由 2661 個 commit 總共提交了超過 102 萬行代碼,多項數(shù)據(jù)對比之前的幾個版本都有所提升,印證著 Flink 開源社區(qū)的蓬勃發(fā)展。

其中阿里巴巴實時計算團隊共提交 64.5 萬行代碼,超過總代碼量的 60%,做出了突出的貢獻。

在該版本中,F(xiàn)link 對 SQL 的 DDL 進行了增強,并實現(xiàn)了生產(chǎn)級別的 Batch 支持和 Hive 兼容,其中 TPC-DS 10T 的性能更是達到了 Hive 3.0 的 7 倍之多。在內(nèi)核方面,對內(nèi)存管理進行了優(yōu)化。在生態(tài)方面,增加了 Python UDF 和原生 Kubernetes 集成的支持。后續(xù)章節(jié)將在這些方面分別進行詳細(xì)介紹。

內(nèi)存管理優(yōu)化

在舊版本的 Flink 中,流處理和批處理的內(nèi)存配置是割裂的,并且當(dāng)流式作業(yè)配置使用 RocksDB 存儲狀態(tài)數(shù)據(jù)時,很難限制其內(nèi)存使用,從而在容器環(huán)境下經(jīng)常出現(xiàn)內(nèi)存超用被殺的情況。 在 1.10.0 中,我們對 Task Executor 的內(nèi)存模型,尤其是受管理內(nèi)存(Managed Memory)進行了大幅度的改進(FLIP-49),使得內(nèi)存配置對用戶更加清晰:

此外,我們還將 RocksDB state backend 使用的內(nèi)存納入了托管范疇,同時可以通過簡單的配置來指定其能使用的內(nèi)存上限和讀寫緩存比例(FLINK-7289)。如下圖所示,在實際測試當(dāng)中受控前后的內(nèi)存使用差別非常明顯。

受控前的內(nèi)存使用情況(share-slot)

受控后的內(nèi)存使用情況(share-slot)

Batch 兼容 Hive 且生產(chǎn)可用

Flink 從 1.9.0 版本開始支持 Hive 集成,但并未完全兼容。在 1.10.0 中我們對 Hive 兼容性做了進一步的增強,使其達到生產(chǎn)可用的標(biāo)準(zhǔn)。具體來說,F(xiàn)link 1.10.0 中支持:

  • Meta 兼容 - 支持直接讀取 Hive catalog,覆蓋 Hive 1.x/2.x/3.x 全部版本
  • 數(shù)據(jù)格式兼容 - 支持直接讀取 Hive 表,同時也支持寫成 Hive 表的格式;支持分區(qū)表
  • UDF 兼容 - 支持在 Flink SQL 內(nèi)直接調(diào)用 Hive 的 UDF,UDTF 和 UDAF

與此同時,1.10.0 版本中對 batch 執(zhí)行進行了進一步的優(yōu)化(FLINK-14133),主要包括:

  • 向量化讀取 ORC (FLINK-14135)
  • 基于比例的彈性內(nèi)存分配 (FLIP-53)
  • Shuffle 的壓縮 (FLINK-14845)
  • 基于新調(diào)度框架的優(yōu)化 (FLINK-14735)

在此基礎(chǔ)上將 Flink 作為計算引擎訪問 Hive 的 meta 和數(shù)據(jù),在 TPC-DS 10T benchmark 下性能達到 Hive 3.0 的 7 倍以上。

SQL DDL 增強

Flink 1.10.0 支持在 SQL 建表語句中定義 watermark 和計算列,以 watermark 為例:

  1. CREATE TABLEtable_name ( 
  2.   WATERMARK FOR columnName AS <watermark_strategy_expression> 
  3. WITH ( 
  4.   ... 

除此之外,F(xiàn)link 1.10.0 還在 SQL 中對臨時函數(shù)/永久函數(shù)以及系統(tǒng)/目錄函數(shù)進行了明確區(qū)分,并支持創(chuàng)建目錄函數(shù)、臨時函數(shù)以及臨時系統(tǒng)函數(shù):

  1. CREATE [TEMPORARY|TEMPORARY SYSTEM] FUNCTION 
  2. [IF NOT EXISTS] [catalog_name.][db_name.]function_name 
  3. AS identifier [LANGUAGE JAVA|SCALA] 

Python UDF 支持

Flink 從 1.9.0 版本開始增加了對 Python 的支持(PyFlink),但用戶只能使用 Java 開發(fā)的 User-defined-function (UDF) ,具有一定的局限性。在 1.10.0 中我們?yōu)?PyFlink 增加了原生 UDF 支持(FLIP-58),用戶現(xiàn)在可以在 Table API/SQL 中注冊并使用自定義函數(shù),如下圖所示:

同時也可以方便的通過 pip 安裝 PyFlink:

  1. pip install apache-flink 

更多詳細(xì)介紹,請參考:https://enjoyment.cool/2020/02/19/Deep-dive-how-to-support-Python-UDF-in-Apache-Flink-1-10/

原生 Kubernetes 集成

Kubernetes (K8S) 是目前最為流行的容器編排系統(tǒng),也是目前最流行的容器化應(yīng)用發(fā)布平臺。在舊版本當(dāng)中,想要在 K8S 上部署和管理一個 Flink 集群比較復(fù)雜,需要對容器、算子及 kubectl 等 K8S 命令有所了解。 在 Flink 1.10 中,我們推出了對 K8S 環(huán)境的原生支持(FLINK-9953),F(xiàn)link 的資源管理器會主動和 Kubernetes 通信,按需申請 pod,從而可以在多租戶環(huán)境中以較少的資源開銷啟動 Flink,使用起來也更加的方便。

更多內(nèi)容,參考 1.10.0 版本發(fā)布日志:

https://ci.apache.org/projects/flink/flink-docs-stable/release-notes/flink-1.10.html

結(jié)語

2019 年 1 月,阿里巴巴實時計算團隊宣布 Blink 開源。整整一年之后,F(xiàn)link 1.10.0 版本的發(fā)布宣告 Flink 和 Blink 的整合正式完成。我們踐行著自己的諾言,開放源碼,更相信社區(qū)的力量,相信社區(qū)是開源協(xié)作精神與創(chuàng)新的搖籃。我們也衷心希望有更多的志同道合的小伙伴加入我們,一起把 Apache Flink 做的越來越好!

 

責(zé)任編輯:武曉燕 來源: 阿里技術(shù)
相關(guān)推薦

2015-09-01 16:26:18

Linux內(nèi)核

2021-03-02 13:56:24

Linux 5.12代碼驅(qū)動

2019-01-03 09:29:15

Linux 系統(tǒng) 數(shù)據(jù)

2018-10-15 09:20:08

代碼軟件工程師

2009-07-21 08:44:14

微軟Linux內(nèi)核開源操作系統(tǒng)

2020-05-27 14:10:50

代碼開發(fā)工具

2017-03-23 14:07:55

代碼程序員

2009-07-21 08:51:33

微軟發(fā)布Linux設(shè)備微軟開源虛擬化

2009-08-20 16:34:50

Linux源代碼紅帽Linux內(nèi)核

2011-05-03 09:10:12

項目管理程序員

2024-03-13 15:48:43

2024-07-24 16:25:02

2012-07-23 09:58:50

代碼程序員

2019-04-19 13:01:12

Java代碼庫Go代碼移植

2023-06-28 14:18:06

2022-06-25 21:22:30

編程Rust代碼

2018-06-07 16:20:56

代碼代碼質(zhì)量程序員

2018-04-03 09:09:05

2013-10-09 13:25:40

Google

2013-10-10 12:28:56

Google開源代碼
點贊
收藏

51CTO技術(shù)棧公眾號