日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何使用实时计算 Flink 搞定实时数据处理难题?

發布時間:2024/9/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用实时计算 Flink 搞定实时数据处理难题? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:如何使用實時計算 Flink 搞定實時數據處理難題?本文由阿里巴巴高級技術專家鄧小勇老師分享,從實時計算的歷史回顧著手,詳細介紹了阿里云實時計算 Flink 的核心優勢與應用場景,文章內容主要分為以下四部分:歷史回眸、選擇理由、產品介紹、未來可期

作者:鄧小勇(靜行)

摘要:
如何使用實時計算 Flink 搞定實時數據處理難題?本文由阿里巴巴高級技術專家鄧小勇老師分享,從實時計算的歷史回顧著手,詳細介紹了阿里云實時計算 Flink 的核心優勢與應用場景,文章內容主要分為以下四部分:

● 歷史回眸
● 選擇理由
● 產品介紹
● 未來可期

眾所周知,阿里云的 Slogan 是“計算是為了無法計算的價值”。計算的實體是數據,但是隨著時間的推移,數據的價值其實是逐漸遞減的。如何從數據產生開始,盡早地發掘它的最大價值,成為實時計算不懈追求的目標。

隨著技術的發展, Flink 已經成為實時計算的工業標準,越來越多的公司正在使用 Flink 作為自己實時計算的工具。在實時計算領域,阿里云也在不斷地探索,并推出了實時計算 Flink 的產品。

本篇內容將通過四個方面,圍繞云上實時計算 Flink 向大家展開介紹。

一、 實時計算的歷史回顧

(一)實時計算發展時間軸

2013年

阿里內部已經上線了一些實時計算的典型場景,比如搜索引擎實時增量索引等等。

2015年

阿里建設了一個實時計算平臺并在內部上線,并承接了當年雙11 GMV大屏等關鍵業務。這些業務的開展,開啟了實時計算 Flink 在阿里巴巴的發展。

2016年7月

實時計算1.0版本公測。采用Galaxy(基于Storm引擎開發),打響了實時計算上云的第一槍,比業界其他產品都要早。

2017年10月

阿里基于 Blink 引擎的實時計算2.0版本上線并公測。該版本是基于大集群的全托管,只能運行SQL。當時用戶的環境需要VPC,在這種大集群的情況下,要跟不同用戶的VPC打通是一個比較大的問題。同時,由于是大集群,無法做到很好的隔離,也就意味著對SQL里面的UDF以及DataStream這些用戶自定義邏輯互不影響得運行,所以只能推出純SQL的作業模式。

2018年10月

實時計算2.0獨享模式商業化。獨享模式是指每個用戶擁有獨立的小集群,每個小集群跟用戶的VPC通過 ENI無縫連接。在這種情況下,既做到了跟用戶 VPC內上下游的連接,同時又能做好的物理隔離,解決了大集群很多功能限制的問題。

2019年的9月

實時計算基于 Flink 3.0半托管模式公測。由于一些大用戶,需要對整個運行環境需要有比較好的掌控,于是我們推出了基于VVP(Ververica Platform)的實時計算半托管模式,即實時計算3.0半托管版本。這個版本是基于中德合作共建的一站式平臺VVP,主要支持Yarn和K8S兩大主流的調度引擎。用戶可以登錄K8S或者Yarn,去操作和管控自己的任務,同時也能享受到VVP提供的一些增值服務。

2020年5月

實時計算3.0全托管模式公測。相對于2.0版本,阿里推出了一種全新的全托管模式。

2.0版本底層是基于ECS機器這種資源方式,當用戶資源不足的時候,擴容需要擴整臺ECS機器,這種彈性有兩個缺點,一是速度比較慢,二是整個ECS機器比較重,當用戶只需要比如 1core資源的時候,需要彈出整臺機器去滿足用戶的業務,不夠靈活。同時由于為每個用戶維護一套集群,對于系統運維來說也是一個巨大的挑戰。

實時計算3.0版本推出的基于 Flink 引擎的全新全托管模式,背后是每個Region一套大集群。既能跟用戶的VPC打通,又能做到充分隔離,用戶就能夠運行SQL的UDF和DataStream等作業,并保持跟社區的絕對兼容,按量付費,同時也給運維帶來便利。這個版本也是業界在云化實時計算領域里的先行者。

(二)實時計算領域大事件

之前在阿里云上的實時計算是基于Blink和RealtimeCompute(產品)的模式,德國是基于 Apache Flink 引擎和VervericaPlatform(產品)的模式。2019年雙方合作后,大家統一將基礎引擎調整為Apache Flink,并在上面添加增值插件,同時在阿里云上的產品統一以RealtimeCompute提供給用戶,powered by Ververica。這樣做的主要目的是通過共建的核心引擎和增值的插件,提升商業化能力,打造全球統一的技術品牌Ververica,在阿里云上繼續使用原來的產品形態RealtimeCompute。

那么整個的關系是怎樣的呢?

基于 Apache Flink ,阿里做了很多增值項,比如說Connecter、SQL增強、StateBackend增強等等。將這些能力產品化到阿里云上,這就是RealtimeCompute。隨著RealtimeCompute對用戶的接入和用戶不斷的反饋,從而不斷豐富商業化的基本功能。這些功能又進一步抽象,再推回到Apache Flink社區中,從形成了社區、企業和產品良性循環發展的狀態。

阿里技術致力于做最好的實時計算,所謂最好包括性能更強,功能更多,易用性更好。就像產品的Slogan“實時即未來”所表達的,希望更多的計算場景采用實時計算,更多的業務使用 Flink ,希望用 Flink 推動整個實時計算的發展。

2015年開始,實時計算 Flink 積累了很多基于不同業務領域的場景,包括實時大屏場景、實時機器學習、實時的ETL場景和實時數倉場景等。同時覆蓋互聯網、在線教育、新零售、交通出行、金融財富等各個領域,培育了很多標桿客戶(見下圖表格)。這些客戶既擴大了對 Flink 的使用,同時客戶們寶貴的場景和反饋也促進了實時計算 Flink 的優化和發展。

二、 為什么選擇實時計算Flink

互聯網發展到今天,業務實時化趨勢越來越強。在在線應用、在線ML、實時風控、實時ETL等各行各業領域,實時計算的發展越來越越好,實時計算的需求也越來越強。下面羅列了四個選擇實時計算Flink的理由。

理由一 上云優勢

云上實時計算 Flink 具有“云”的天然優勢。

● 成本的優勢:在云上的實時計算,節省了用戶建設和維護基礎設施的成本,比如說機房、網絡等等。
● 靈活的優勢:一塊業務的發展是需要多個引擎或者多款產品的組合,如果用戶選擇自建,不僅需要建設各個產品,還無法實現按需選擇;但是在云上,用戶可以根據自己的需要選擇需要的產品。
● 擴展性的優勢:在線下自建,用戶需要提前預估好資源,預估多了可能造成資源浪費,預估少了不一定能夠扛過業務的峰值。 而在云上可以實現按需索取,更具彈性,完全契合業務需求。

理由二 原創出品

實時計算 Flink是阿里與 Flink 原創團隊中西合璧共同打造的一個國際化產品。完全兼容社區,用戶的作業甚至基本不需改動,就可以平遷到實時計算 Flink中。如果遇到一些用戶問題,也可以及時地反饋給社區,并迅速修復。同時,在 Apache Flink 的基礎之上,提供了豐富的增值能力,這些能力對云上的使用場景尤為重要,也成為實時計算Flink帶給用戶的核心價值。

理由三 豐富經驗

對于實時計算 Flink ,阿里具有豐富的實踐經驗。阿里巴巴已經使用實時計算 Flink 近10年時間,承接了全阿里集團的實時業務,經歷過多次雙11的實戰大考,在這期間大量的經驗和業務場景被積累下來,直接賦能用戶。而這些經驗和業務場景,是需要用戶自己經過漫長時間和人力投入才能獲得的。

理由四 企業增值

首先是Connector“多”。

Flink的輸入輸出需要對接不同上下游,而在阿里云上下游存儲也比較多,實時提供的 Connector 基本覆蓋了目前云上所有的數據存儲,包括開源的和商業的,而這在社區是遠遠少于企業版的;并且針對一些重要場景的多次打磨和特殊優化,無縫銜接上下游。

添加了更多內置函數,可以為用戶提供垂直領域的函數,使用戶做到開箱即用。 “多”還指對系統和業務的監控指標非常多。這些監控指標能夠讓用戶更直接的看到整個系統的情況,省去了自己埋點或查詢資料。實時計算的運維也對接了阿里云的運維體系,如果用戶有使用阿里云的經驗,就可以無縫的使用阿里云的運維工具來維護自己的實時計算 Flink 的任務。

其次是“快”,指更快的實時計算能力。

如何做到更快的實時計算呢?在 Apache Flink 基礎之上,自研流計算存儲引擎Gemini,平均優于開源性能1倍以上。并對某些SQL或 Table API算子進行了深度優化,部分性能也能領先開源2倍。

版本更新速度快,社區的新版本可以在阿里云上很快地發布出來,同時部分功能也可以優先于社區讓用戶提前得到體驗。提前使用的功能,用戶也不用擔心只在阿里云上有,后續還能推回到社區中。

作為企業級產品,7×24小時的服務可以在規定時間里響應客戶并及時處理客戶問題。如果遇到bug也可以先于社區發布提前解決。

第三是“好”,主要體現在跟整個云環境技術環境的集成,包括賬號權限體系、存儲告警、日志鏈路等等。對于Yarn 和K8S做了深度的優化,對于作業的提交時間以及大量作業提交運行的調度能力都做了深度的優化,達到生產級可用。這些優化都是在阿里巴巴集團內部使用并檢驗過后再發布到云上的。

另外,實時計算 Flink 還提供了Web Console,實現一站式開發調試運維服務,用戶可以通過白屏化的方式去操作作業。

阿里還提供了全鏈路的智能診斷工具,可以讓用戶更智能的分析、診斷作業的問題,并且給出智能提示。

最后,阿里提供了OpenAPI,可以讓用戶做二次開發,方便集成自有系統中去。

實時計算 Flink內置元數據集成,同時也可以與外界的HMS等元數據系統打通。SQL開發基本上已經成為大數據開發的趨勢,用戶可以在Web上編輯、調試、運行SQL,或發現SQL問題。同時集成了 Alink 的能力,通過 Flink 來實現傳統機器學習的算法。

“省”是用戶最關心的,如何省資源、省人力和省錢等。實時計算 Flink為用戶提供了單作業粒度的AutoPilot能力,這就意味著隨著任務運行,假設遇到業務波峰需要更大并發和更多資源,或遇到波谷需要釋放掉并發或資源,可以幫助用戶進行自動調節。跟上文提到的實時計算3.0全托管形態深度的結合,單作業可以自動調優,用戶還可以根據所需資源按量付費,彈性擴縮容,從而節省成本。

對于全托管用戶,7×24小時運維服務可以為用戶節省很多人力成本;對于半托管用戶,實時計算 Flink也提供了專業的技術支持,去定位用戶問題并給出解決方案。對于全鏈路的開發運維以及完整的作業生命周期管理,實時計算 Flink也為用戶節省了不少時間成本。

三、 實時計算Flink產品介紹

實時計算 Flink 的產品介紹主要包括:產品技術棧、云上產品形態和實時打通上下游。

(一) 產品技術棧

如下圖所示,整個產品技術站分為以下幾個部分(由下往上):

計算資源,包括物理機、虛擬機等等。實時計算 Flink 的運行需要一套分布式文件系統,這些文件系統在阿里云上主要用通過OSS、HDFS等分布式文件系統實現。關于調度系統,最主要的是支持了當前比較熱門的Yarn和K8S兩種調度系統,充分滿足了不同調度系統體系用戶的需求。

上層是 Ververica Platform。首先基于Apache Flink 做了增值插件,包括上文提到GeminiStateRockend、對SQL的優化和豐富的Connector;在任務管控層采用微服務架構,給用戶提供整個作業生命周期的管理,Web的開發和查看,SQL的開發以及AutoPilot的能力等等。在這做了更多任務管理上的增值和優化。最終的目標是讓Apche Flink企業化版本提供一站式處理能力,并提供更多優化插件。

(二) 云上產品形態

阿里云的實時計算 Flink這款產品已經成為開源引擎商業化的新星。目前在公共云上,主要有全托管和半托管兩種形態,全托管主要適合那些關注業務發展但是不關心集群運維的用戶,也就是托管集群的形態。我們強烈推薦使用 Flink 全托管,跟社區完全兼容,無縫跟上下游打通,相互安全隔離,又能按量付費。

半托管主要是將整個Ververica Platform部署到用戶的環境中,用戶的環境可以是Yarn也可以是K8S。目前半托管的這兩款產品都已經商業化,并且僅收取 ECS的費用,對于Yarn或者K8S有偏好的用戶,可以選擇這兩款產品。

(三) 實時打通上下游

不管選擇哪種產品形態,都要做到打通用戶上下游,像數據總線、日志服務、消息隊列這樣的一些流式表能夠流進 Flink ,像表格存儲、數據庫服務等等能夠作為維表。對于一些大型的存儲,像MaxCompute,Hbase,OSS數據量不是特別大的情況下,也能夠以維表方式加載進來。同時,這些系統也可以做出 Flink 的輸出,供用戶業務使用。

實時計算 Flink 直接將用戶的流式存儲作為上游,用戶的一些查詢存儲作為維表,然后再輸出到用戶的環境中,不需要做數據搬移,可以自動跟用戶的環境打通并完成復雜的邏輯計算。

四、 實時計算 Flink 未來可期

對于未來的發展,阿里云實時計算 Flink摩拳擦掌,信心滿滿。

產品功能持續推出

SQL的建設正在逐漸完備,比如SQL Preview能力能夠提前在SQL提交之前就能夠得到SQL的部分產出,用來判斷SQL的邏輯是否正確;通過 Flink Session 提交任務,更快且節省成本;更智能的AutoPilot能力,為用戶進一步節省成本;還會在SQL層進行深度優化,不斷提高運行性能;對于長時間運行的 Flink ,我們將Debug和TrouleShooting能力作為主要建設目標,讓用戶能夠方便地定位目前作業的狀態以及健康程度;添加常用的監控報警,讓用戶能夠及時感知作業的異常。

產品介紹持續更新

通過入門篇、實操篇和高級篇,由淺入深地持續為大家介紹產品。

入門篇主要介紹產品的概念以及應用場景如何開通等等;實操篇主要介紹基于實時計算 Flink 用戶如何去寫自己DataStream作業和SQL作業,如何使用一些AutoPilot等基礎的功能;高級篇主要介紹如何使用實時計算 Flink 做Trouble Shooting和更有效的配置,比如 Flink 的內存資源調優等等。

關于阿里巴巴高級技術專家鄧小勇(靜行)

2010年加入阿里巴巴,參與搜索Dump中心的數據處理工作。后加入現在的計算平臺,先后負責實時數據同步、離線數據同步、實時數據轉離線處理等領域的工作。通過這些工作的歷練,與大數據傳輸和處理結下了不解之緣。

2015年開始到現在,專注在實時計算建設和發展上,經歷了幾代實時計算的建設,目前是VVP 建設的負責人,主要負責實時計算在阿里集團、阿里云公共云和混合云的產品化建設。

原文鏈接:https://developer.aliyun.com/article/780633?

版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的如何使用实时计算 Flink 搞定实时数据处理难题?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。