前言:
不修內功,難成大器。爲了將Apache Flink在阿里巴巴真正運行起來,阿里巴巴實時計算團隊作了大量的優化,在阿里雲上的產品正式命名爲實時計算,以Flink SQL爲主要API,致力於打造一款全球領先的實時計算引擎。數據結構
正文:
阿里雲實時計算大可成稻草,小亦是利器
在光明日報近期的文章中,回首互聯網接入中國的二十多年,特別是最近五年,被互聯網之光照耀的地方,許多人的命運因互聯網而發生改變,人們能夠經過一個鼠標、一根網線或者一部手機就能與廣闊的世界相連。架構
有了互聯網,陝西省山陽縣貧困山區的孩子能夠免費接受數字教育,經過互聯網認識到長頸鹿不是豬身馬首的動物。有了互聯網,甘肅山村貧困戶家裏養的山羊二十四小時就能經過專業冷鏈供應給上海市民。有了互聯網,80歲的烏鎮老太太能夠用手機購物,開直播,成爲「網紅」。這樣的故事還有不少不少。oop
然而科技並未止步於此,一直在不斷向前探索,對於企業來講,互聯網一面是陽光,一面是波濤。從互聯網時代到人工智能時代,從數據量成指數級的爆發到應對實時計算的探索。到了今天,咱們不止將目光侷限在淘寶能購物就好,物流能到貨就好,咱們追求的是愈來愈精準化的購物體驗,對企業也提出了更加實時化,智能化的需求。大數據
實時計算一時間成爲了企業向實時化、智能化大數據計算升級轉型的稻草,抓住,則可繼續在波濤浪潮中翻滾,享受陽光。爲了成爲全球領先的實時計算引擎,阿里雲實時計算花了三年時間來苦練內功。優化
阿里雲實時計算的前半生,我叫Apache Flink™
2015年10月StreamCompute初版在阿里巴巴集團內部發布,支持集團雙十一任務遷移到新平臺,保障大屏任務順利。2016年blink發佈上線,成功支持搜索和推薦雙11全鏈路實時化。同年6月,公有云正式對外發布公測,爲中國公有云環境下第一家提供流式數據處理平臺的產品Apache Flink™正式上線,並從阿里巴巴的搜索和推薦這兩大場景開始實現。阿里雲
對於阿里巴巴來講,爲何須要Apache Flink™
阿里巴巴的商品數據處理常常須要面對增量和全量兩套不一樣的業務流程問題,因此阿里巴巴就在想:能不能有一套統一的大數據引擎技術,用戶只須要根據本身的業務邏輯開發一套代碼。這樣在各類不一樣的場景下,不論是全量數據仍是增量數據,亦或者實時處理,一套方案便可所有支持,這就是阿里巴巴選擇 Flink 的背景和初衷。人工智能
目前阿里巴巴全部的業務,包括阿里巴巴全部子公司都採用了基於 Flink 搭建的實時計算平臺。同時 Flink 計算平臺運行在開源的 Hadoop 集羣之上。採用 Hadoop 的 YARN 作爲資源管理調度,以 HDFS 做爲數據存儲。所以,Flink 能夠和開源大數據軟件 Hadoop 無縫對接。
可是彼時的 Flink 不論是規模仍是穩定性還沒有經歷實踐,成熟度有待商榷。blog
阿里雲實時計算關鍵技術揭祕
揭祕關鍵技術之一:統一API
爲了可以真正作到用戶根據本身的業務邏輯開發一套代碼,可以同時運行在多種不一樣的場景,Flink 首先須要給用戶提供一個統一的 API。在通過一番調研以後,阿里巴巴實時計算認爲 SQL 是一個很是適合的選擇。在批處理領域,SQL 已經經歷了幾十年的考驗,是公認的經典。接口
API選定好了,隨之而來的就是對SQL 層的技術架構進行升級和替換。阿里巴巴在 SQL 層提出了全新的 Quyer Processor,主要包括一個流和批能夠儘可能作到複用的優化層(Query Optimizer)以及基於相同接口的算子層(Query Executor)。這樣一來, 80% 以上的工做能夠作到兩邊複用,好比一些公共的優化規則,基礎數據結構等等。同時,流和批也會各自保留本身一些獨特的優化和算子,以知足不一樣的做業行爲。ip
揭祕關鍵技術之二:全新的數據結構
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