當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]導(dǎo)讀:隨著大數(shù)據(jù)的快速發(fā)展,行業(yè)大數(shù)據(jù)服務(wù)越來越重要。同時,對大數(shù)據(jù)實時計算的要求也越來越高。今天會和大家分享下愛奇藝基于Apache Flink的實時計算平臺建設(shè)實踐。 今天的介紹會圍繞下面三點展開: Flink的現(xiàn)狀與改進 平臺化的探索和實踐:實時計算平臺

linkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">
基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

導(dǎo)讀:隨著大數(shù)據(jù)的快速發(fā)展,行業(yè)大數(shù)據(jù)服務(wù)越來越重要。同時,對大數(shù)據(jù)實時計算的要求也越來越高。今天會和大家分享下愛奇藝基于Apache Flink的實時計算平臺建設(shè)實踐。

今天的介紹會圍繞下面三點展開:

  • Flink的現(xiàn)狀與改進

  • 平臺化的探索和實踐:實時計算平臺

  • Flink業(yè)務(wù)案例

01
Flink的現(xiàn)狀與改進

1. Flink現(xiàn)狀

首先和大家分享下愛奇藝大數(shù)據(jù)服務(wù)的發(fā)展史。

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

我們從2012年到2019年,大數(shù)據(jù)服務(wù)經(jīng)過了一系列持續(xù)的改進和發(fā)展:

  • 2012年搭建了第一個Hadoop集群,當(dāng)時只有大概20幾個節(jié)點,使用的計算框架是MapReduce和Hive等

  • 到2013,2014年,開始使用Hadoop 2.0,上線了Storm和Spark,由于Storm的使用性和穩(wěn)定性不夠好,被放棄使用,轉(zhuǎn)而使用Spark

  • 2015年發(fā)布了第一個實時計算平臺Europa,上線了Kafka

  • 2017年使用了Flink,同時我們基于Spark和Flink打造了流式計算引擎StreamingSQL

  • 2018年推出了自研的實時計算平臺Real-time Analytics Platform (RAP)

  • 2019年基于Flink達到了內(nèi)部的流數(shù)據(jù)生態(tài)平臺;

然后介紹一下Flink在愛奇藝的使用情況:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

這是Flink在愛奇藝的一些使用情況,目前的節(jié)點規(guī)模大約15000多臺,總的作業(yè)規(guī)模有800多個,每天的數(shù)據(jù)流的生產(chǎn)量大概在萬億級別,約2500TB左右。注:本數(shù)據(jù)僅代表嘉賓分享時的數(shù)據(jù)。

下面是目前愛奇藝基于Spark,F(xiàn)link打造的實時計算平臺框架:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

  • 底層存儲使用的HDFS,HBase,Kafka和OSS。

  • 實時計算框架通過Spark和Flink部署,在這兩個服務(wù)之上,構(gòu)建了一個獨立的流式系統(tǒng)引擎StreamingSQL。

  • 在引擎之上,打造了多種類型的平臺,用來實現(xiàn)管理計算的任務(wù),流數(shù)據(jù)的生產(chǎn)分發(fā)和實時數(shù)據(jù)分析等不同需求。

  • 實時計算在愛奇藝業(yè)務(wù)上有些典型的應(yīng)用場景:實時分析、報警,信息流(如廣告類)推薦,內(nèi)部數(shù)據(jù)在線訓(xùn)練,實時風(fēng)控(內(nèi)容追蹤等)。

2. Flink改進

Flink改進-監(jiān)控和報警:

以前只是做了簡單的狀態(tài)監(jiān)控,在出現(xiàn)問題之后,不知道內(nèi)部狀態(tài)是怎么樣的。近期做了一些改進,并和內(nèi)部的監(jiān)控平臺Hubble進行集成,主要有三個級別的監(jiān)控指標(biāo):

  • Job級別監(jiān)控指標(biāo):Job狀態(tài)、Checkpoint狀態(tài)和耗時。如果沒有進入到running狀態(tài),會對其進行重啟操作,防止其查詢卡在不健康狀態(tài)下

  • Operator級別監(jiān)控指標(biāo):時延、反壓、Source/Sink流量,對每個Operator進行指標(biāo)聚合

  • TaskManager級別監(jiān)控指標(biāo):CPU使用率、內(nèi)存使用率、JVM GC等

Flink改進-狀態(tài)管理:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

問題一:長時間運行Flink job,會因為各種原因?qū)е滤貑?。Checkpoint只在Flink作業(yè)內(nèi)部有效,一旦主動重啟或異常重啟時,上一個job的狀態(tài)會全部丟失。

解決方法:作業(yè)重啟時,找到上一次運行成功的Checkpoint,從中恢復(fù)。

缺陷:對于狀態(tài)很大的作業(yè),會使用RockDBStateBackend做增量Checkpoint;上一次的Checkpoint被依賴而無法刪除,會導(dǎo)致狀態(tài)堆積(生產(chǎn)環(huán)境中的一個作業(yè)的Checkpoint總共多達8TB)。

對于這個缺陷也就是:

問題二:Checkpoint無限依賴

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

解決方法:使用Savepoint打斷增量Checkpoint的依賴鏈,并與流計算平臺集成。

主要有兩種產(chǎn)品,一種是通過業(yè)務(wù)通過平臺主動重啟,重啟之前對此job做一次Savepoint操作,啟動時從Savepoint的路徑去啟動。

第二種是發(fā)生異常重啟時,來不及做Savepoint。那么會在Checkpoint啟動起來,一旦job進入到running狀態(tài)以后,立即做一次Savepoint,解決依賴問題。

StreamingSQL:

StreamingSQL是基于Spark和Flink構(gòu)建的一個統(tǒng)一的流數(shù)據(jù)ETL工具,具有以下一些特征:

  • SQL化:業(yè)務(wù)上去寫流計算任務(wù)時,不需要去寫Scala程序,只需要編寫一些SQL代碼即可完成流計算ETL任務(wù)的開發(fā)。

  • DDL:流表、臨時表、維度表、結(jié)果表。

  • UDF:系統(tǒng)預(yù)定義常用函數(shù)、用戶自定義函數(shù)。

  • 提供SQL編輯器。

下面是StreamingSQL的一個實例:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

02
實時計算平臺

1. 實時計算管理平臺

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

上圖是Spark、Flink任務(wù)開發(fā)和管理的web IDE的例子,用戶可以在頁面上配置一些參數(shù)和字段,進行任務(wù)的開發(fā),上傳,作業(yè)的重啟,運行狀態(tài)的查看等常規(guī)操作。

此外,還提供其他的一些管理:

  • 文件管理:任務(wù)Jar包、依賴庫。

  • 函數(shù)管理:提供豐富的系統(tǒng)函數(shù)、支持用戶注冊UDF。

  • 版本管理:支持任務(wù)、文件的版本對比以及回滾。

  • 常規(guī)管理:監(jiān)控大盤、報警訂閱、資源審計、異常診斷。

2. 實時數(shù)據(jù)處理平臺

為了確保數(shù)據(jù)發(fā)揮該有的價值,讓數(shù)據(jù)的流轉(zhuǎn)更加通暢,讓業(yè)務(wù)處理數(shù)據(jù)、使用數(shù)據(jù)和分析數(shù)據(jù)更加便捷,我們改進服務(wù),推出了數(shù)據(jù)處理平臺和數(shù)據(jù)分析平臺。

以下是實時數(shù)據(jù)處理平臺演進過程:

2015 – 2016

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

  • 場景:離線報表為主,少量實時報表需求,數(shù)據(jù)生產(chǎn)規(guī)模50萬QPS;

  • Venus 1.0數(shù)據(jù)采集平臺:基于Apache Flume;在Venus agents上通過tail+grep/awk/sed等腳本過濾;

  • 缺陷:不方便變更過濾規(guī)則,需重啟所有agents;不同用戶需求存在大量重復(fù)處理邏輯。

2017 – 2018

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

  • 場景:實時分析、信息流推薦等實時需求增加,500萬QPS

  • Venus 2.0數(shù)據(jù)采集分析平臺:實時過濾從Venus agent遷移到Flink,采用兩級Kafka;無需重啟即可動態(tài)增減處理規(guī)則

  • 缺陷:Kafka數(shù)據(jù)冗余,不方便分享Kafka數(shù)據(jù)

2019

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

  • 場景:大量實時業(yè)務(wù)需求,1500萬QPS

  • Venus 3.0流數(shù)據(jù)生產(chǎn)分發(fā)平臺:通過web配置實時處理規(guī)則,可自由組合常見算子;參考離線數(shù)倉,按照數(shù)據(jù)使用場景構(gòu)建流式數(shù)倉

  • 優(yōu)點:減少流數(shù)據(jù)重復(fù)生產(chǎn),促進流數(shù)據(jù)共享

下面是一個例子,流數(shù)據(jù)處理平臺的一個頁面。目前平臺支持Projection、Filter、Split、Union、Window、UDF等常見算子。

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

3. 實時分析平臺

目前我們實時數(shù)據(jù)OLAP分析平臺主要有兩大類:一類是實時報表,主要有A/B測試、精細(xì)化運營等;另一類是實時報警,主要有VV/UV、播放故障等。

下圖是現(xiàn)在的一個架構(gòu)圖:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

目前支持流處理平臺,Kafka,Hubble監(jiān)控系統(tǒng),MySQL binlog這些數(shù)據(jù)源。用戶可以通過UI配置處理規(guī)則,分析規(guī)則,需要展示的報表的風(fēng)格,以及一些報警的規(guī)則。這些處理規(guī)則和分析規(guī)則等,后臺會自動把它們的function對應(yīng)的服務(wù)轉(zhuǎn)成一個job,然后自動把結(jié)果上傳到MySQL里。此外,用戶可以在多平臺上面進行分析查看、觀測報警率等,也可以方便的通過api對接到自己的第三方的定制化平臺里。

目前,我們實時分析平臺擁有以下一些優(yōu)勢:

  • 開發(fā)門檻低:無需寫程序或SQL

  • 開發(fā)效率高:由以前的幾天到現(xiàn)在的半小時就能完成

  • 報表實時:從小時級別優(yōu)化到現(xiàn)在只需要1分鐘

  • 查詢更快:支持大規(guī)模數(shù)據(jù)亞秒級查詢

下面展示的是一些頁面的模塊。

配置處理規(guī)則:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

配置OLAP模型:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

03
Flink業(yè)務(wù)案例

1. 信息流推薦

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

我們所有的數(shù)據(jù)都是通過實時收集到二級Kafka里面,通過Stream處理平臺分級成點擊、查看、訂閱、搜索等一系列行為不同的Kafka里。然后再經(jīng)過處理平臺處理以后,生產(chǎn)相應(yīng)的用戶特征,用戶畫像等實時流,最后被推薦引擎去使用。

我們從Spark Streaming遷移到Flink,消除了批處理延遲。目前單個任務(wù)延遲從1分鐘縮短到1-2秒,端到端性能提升86倍,并且顯著提升了推薦效果。

2. 使用Flink生產(chǎn)深度學(xué)習(xí)訓(xùn)練數(shù)據(jù)

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

上圖是一個廣告推薦相關(guān)的例子,這是以前的一個架構(gòu),通過Hive/Spark離線ETL生成廣告深度學(xué)習(xí)算法所需要的訓(xùn)練數(shù)據(jù),算法模型更新周期為6小時。

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

從2018年初開始,對框架做了實時的一個改造。實時過來的用戶行為數(shù)據(jù)會實時投遞到Kafka里,通過Flink處理完以后,生成一些新的Delta數(shù)據(jù);過去7天分析的廣告特征、用戶特征投到Kafka,通過Flink處理完以后,存到HBase里。Kafka實時流(最近24小時)和HBase維度表(最近7天)這兩部分?jǐn)?shù)據(jù)Join之后生成一個Session流,再給算法預(yù)測使用。

通過框架的改進,目前算法模型更新從6小時縮短到1小時,并且支持實時CTR預(yù)估,更好指導(dǎo)廣告決策,提升廣告收益。

3. 端到端Exactly-Once處理

由于目前存在一個問題:Kafka節(jié)點故障重啟或人工運維時,業(yè)務(wù)方重復(fù)消費數(shù)據(jù)。因此最近正在研究端到端Exactly-Once處理的一個方案:Kafka Exactly-Once Semantics + Flink two-phase commit.      

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

但是,這個方案會造成Flink任務(wù)計算性能的20%損耗,從業(yè)務(wù)方向角度來講,這個是在可接受范圍內(nèi)的。

4. 挑戰(zhàn)與規(guī)劃

以下是未來的一些規(guī)劃:

  • 流批一體化

  • SQL化:進一步完善和推廣StreamingSQL,降低開發(fā)門檻

  • 基于Flink的機器學(xué)習(xí)的嘗試和使用

  • 提高Flink作業(yè)的資源利用率,支持動態(tài)資源調(diào)整

  • Flink on Kubernetes

作者介紹:

linkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);line-height: 2em;box-sizing: border-box !important;overflow-wrap: break-word !important;">梁建煌,愛奇藝大數(shù)據(jù)服務(wù)負(fù)責(zé)人,2012-碩士畢業(yè)于上海交通大學(xué)后,先后在 SAP、愛奇藝工作,從 2013 年起開始負(fù)責(zé)愛奇藝大數(shù)據(jù)服務(wù)體系的建設(shè)工作,包括大數(shù)據(jù)存儲、計算、OLAP 以及開發(fā)平臺等。

特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

長按訂閱更多精彩▼

基于Apache Flink的愛奇藝實時計算平臺建設(shè)實踐

如有收獲,點個在看,誠摯感謝


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉