阿里雲實時計算,前世功,今生能!

前言:
不修內功,難成大器。爲了將Apache Flink在阿里巴巴真正運行起來,阿里巴巴實時計算團隊做了大量的優化,在阿里雲上的產品正式命名爲實時計算,以Flink SQL爲主要API,致力於打造一款全球領先的實時計算引擎。

正文:
阿里雲實時計算大可成稻草,小亦是利器
在光明日報近期的文章中,回首互聯網接入中國的二十多年,特別是最近五年,被互聯網之光照耀的地方,許多人的命運因互聯網而發生改變,人們可以通過一個鼠標、一根網線或者一部手機就能與廣闊的世界相連。

有了互聯網,陝西省山陽縣貧困山區的孩子可以免費接受數字教育,通過互聯網認識到長頸鹿不是豬身馬首的動物。有了互聯網,甘肅山村貧困戶家裏養的山羊二十四小時就能通過專業冷鏈供應給上海市民。有了互聯網,80歲的烏鎮老太太可以用手機購物,開直播,成爲“網紅”。這樣的故事還有很多很多。

然而科技並未止步於此,一直在不斷向前探索,對於企業來說,互聯網一面是陽光,一面是波濤。從互聯網時代到人工智能時代,從數據量成指數級的爆發到應對實時計算的探索。到了今天,我們不止將目光侷限在淘寶能購物就好,物流能到貨就好,我們追求的是越來越精準化的購物體驗,對企業也提出了更加實時化,智能化的需求。

實時計算一時間成爲了企業向實時化、智能化大數據計算升級轉型的稻草,抓住,則可繼續在波濤浪潮中翻滾,享受陽光。爲了成爲全球領先的實時計算引擎,阿里雲實時計算花了三年時間來苦練內功。

阿里雲實時計算的前半生,我叫Apache Flink™
2015年10月StreamCompute第一版在阿里巴巴集團內部發布,支持集團雙十一任務遷移到新平臺,保障大屏任務順利。2016年blink發佈上線,成功支持搜索和推薦雙11全鏈路實時化。同年6月,公有云正式對外發布公測,爲中國公有云環境下第一家提供流式數據處理平臺的產品Apache Flink™正式上線,並從阿里巴巴的搜索和推薦這兩大場景開始實現。

對於阿里巴巴來說,爲什麼需要Apache Flink™
阿里巴巴的商品數據處理經常需要面對增量和全量兩套不同的業務流程問題,所以阿里巴巴就在想:能不能有一套統一的大數據引擎技術,用戶只需要根據自己的業務邏輯開發一套代碼。這樣在各種不同的場景下,不管是全量數據還是增量數據,亦或者實時處理,一套方案即可全部支持,這就是阿里巴巴選擇 Flink 的背景和初衷。

目前阿里巴巴所有的業務,包括阿里巴巴所有子公司都採用了基於 Flink 搭建的實時計算平臺。同時 Flink 計算平臺運行在開源的 Hadoop 集羣之上。採用 Hadoop 的 YARN 做爲資源管理調度,以 HDFS 作爲數據存儲。因此,Flink 可以和開源大數據軟件 Hadoop 無縫對接。
但是彼時的 Flink 不管是規模還是穩定性尚未經歷實踐,成熟度有待商榷。

阿里雲實時計算關鍵技術揭祕
揭祕關鍵技術之一:統一API
爲了能夠真正做到用戶根據自己的業務邏輯開發一套代碼,能夠同時運行在多種不同的場景,Flink 首先需要給用戶提供一個統一的 API。在經過一番調研之後,阿里巴巴實時計算認爲 SQL 是一個非常適合的選擇。在批處理領域,SQL 已經經歷了幾十年的考驗,是公認的經典。

API選定好了,隨之而來的就是對SQL 層的技術架構進行升級和替換。阿里巴巴在 SQL 層提出了全新的 Quyer Processor,主要包括一個流和批可以儘量做到複用的優化層(Query Optimizer)以及基於相同接口的算子層(Query Executor)。這樣一來, 80% 以上的工作可以做到兩邊複用,比如一些公共的優化規則,基礎數據結構等等。同時,流和批也會各自保留自己一些獨特的優化和算子,以滿足不同的作業行爲。
_

揭祕關鍵技術之二:全新的數據結構

SQL 層的技術架構統一了,阿里巴巴開始尋求以全新的數據結構BinaryRow,從而讓 Blink 在 SQL 層的執行效率得到1倍以上的提升。得益於技術架構和基礎數據結構的統一,很多代碼生成技術得以達到更廣範圍的複用。同時由於 SQL 的強類型保證,用戶可以預先知道算子需要處理的數據的類型,從而可以生成更有針對性更高效的執行代碼。

揭祕關鍵技術之三: 改造 Flink 資源調度系統

爲了讓 Flink 在 Alibaba 的大規模生產環境中生根發芽,實時計算團隊如期遇到了各種挑戰,首當其衝的就是如何讓 Flink 與其他集羣管理系統進行整合。上面說到了Flink 原生集羣管理模式尚未完善,也無法原生地使用其他其他相對成熟的集羣管理系統。基於此,一系列棘手的問題接連浮現:多租戶之間資源如何協調?如何動態的申請和釋放資源?如何指定不同資源類型?

通過大量的調研與分析,最終選擇的方案是改造 Flink 資源調度系統,讓 Flink 可以原生地跑在 Yarn 集羣之上;並且重構 Master 架構,以此爲契機,阿里巴巴和社區聯手推出了全新的 Flip-6 架構,讓 Flink 資源管理變成可插拔的架構,爲 Flink 的可持續發展打下了堅實的基礎。如今 Flink 可以無縫運行在 YARN、Mesos 和 K8s 之上,正是這個架構重要性的有力說明。

揭祕關鍵技術之四:高可靠性、高穩定性
爲了保證 Flink 在生產環境中的高可用,阿里巴巴着重改善了 Flink 的 FailOver 機制。首先是 Master 的 FailOver,Flink 原生的 Master FailOver 會重啓所有的 Job,改善後 Master 任何 FailOver 都不會影響 Job 的正常運行;其次引入了 Region-based 的 Task FailOver,儘量減少任何 Task 的 FailOver 對用戶造成的影響。有了這些改進的保駕護航,阿里巴巴的大量業務方開始把實時計算遷移到 Flink 上運行。

阿里雲實時計算,錘鍊後必將大放異彩
阿里雲實時計算在阿里巴巴內部是一個不斷被挑戰,不斷強化的過程。阿里巴巴是商業市場的縮影,淘寶、阿里影業等都已應用了阿里雲實時計算。支撐了淘寶對選品實時性的高要求,爲阿里影業提供了滿足未來2-3年隨着影院增加,數據增長的報表功能解決方案。

在外部解決了貴州茅臺數據採集實時性、穩定性差、各渠道下的流量、交易及售後物流、服務、退款退貨等環節分析困難、異常預警信息監控困難等難題。

阿里雲實時計算今年4月份正式商業化之後,截止目前,使用用戶已經超過2000家。在已有的用戶中,實時計算主要應用於實時互聯網數據分析、實時數據大屏、實時金融風控、電商實時推薦等諸多領域。阿里集團內淘寶、天貓、天弘基金、菜鳥、工業大腦等諸多業務均大量應用了實時計算技術,在集團外,也包括衆安保險、全民TV、新華智雲、貴州茅臺等諸多公司的應用案例。

2005年,弗裏德曼在《地球是平的》一書中,曾興奮地描述了技術讓世界變平的過程,預言全球化的大趨勢不可逆轉。儘管當今世界,全球化的過程面臨一波三折,但全球化的浪潮,終究是不可逆的,特別是在這個互聯網時代。今天,阿里雲實時計算用自身的實力不斷證明了自己,成爲全球領先的實時計算引擎。

瞭解更多關於實時計算詳情請戳:https://data.aliyun.com/product/sc?spm=5176.10695662.1131226.1.5aff307fVKhYmN&tlog=out_aiticai_feature_20181120
原文鏈接 https://yq.aliyun.com/articles/672000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章