登月1號:支付寶演繹空中升級絕技

jopen 10年前發布 | 23K 次閱讀 支付寶 分布式/云計算/大數據

出于業務穩定發展的需要,阿里集團內部的技術發展路線上曾經是雙“強”并立:支撐淘寶、支付寶等業務的以Hadoop為底層的云梯1和支撐阿里云、阿里金融等業務的以自主研發“飛天”及ODPS為底層的云梯2。而阿里內部對于二者的技術爭論由來已久。

2013年底,隨著飛天5K項目的成功,飛天平臺用技術實力證明了其在“性能強勁、架構靈活,可支撐業務飛速發展;技術自主可控,安全可靠;成本更具優勢”等方面,遠超Hadoop集群的優勢。阿里集團融合數據,建設一個統一的底層大數據平臺隨之成為現實。阿里數據平臺團隊聯合技術保障部和集團各事業部,開始了一系列宏大的登月計劃,致力于將搜索、廣告、物流等多個BU的數據統一,基于飛天提供開放數據處理服務的ODPS將成為承載阿里集團全部數據的統一處理平臺。

“登月計劃”共有20多個項目,涉及阿里巴巴和小微金服所有的事業部,覆蓋集團全部數據人員,其牽扯人員、資源之多,在集團內部罕見。登月計劃的全面啟動,標志著阿里集團自研的飛天平臺及ODPS服務,從功能和性能上已經漸漸超越了Hadoop,阿里云的技術走在了世界前列。

從Hadoop到ODPS,“登月1 號”啟動

登月計劃1號項目,選擇了一塊“硬骨頭”——對穩定性、安全性、業務連續性響應等要求最高的支付寶。其最終目標是將原支付寶在Hadoop集群上的業務無縫平穩遷移到ODPS上。登月1號的啟動,正式拉開了集團離線業務遷移到ODPS的序幕。談到當時支付寶的選擇,阿里小微金融服務集團數據庫技術專家安道全重點強調了兩方面。

■ 面對業務高速增長的現狀,技術團隊在評估支付寶的海量數據存儲與計算平臺時,發現以目前的技術發展趨勢,云梯1無法突破5000臺集群管理的瓶頸,更不要說實現后續10000臺、20000臺的大規模集群擴容目標。而此時,云梯2單集群規模已經從1500臺順利升級到5000臺,同時實現跨集群擴展也取得了階段性成果。技術平臺切換有了實踐的可能性。

■ 當阿里金融和支付寶業務整合的時候,云梯1和云梯2兩套平臺不管是在技術上、團隊上、業務響應效率上都帶來巨大的成本,因此我們必須在最佳時間點做出決策,早了不行,晚了代價太大,打通數據平臺的時機就非常重要,一旦打通則為業務長期發展奠定了堅實基礎。

安道全表示:“小微數據團隊在對ODPS的穩定性的判斷和自身發展狀況的基礎上,在2013年10月17日啟動‘登月1號’項目,由支付寶、數據平臺技術、技術保障、測試方等多部門組成的技術團隊正式啟動支付寶升級。”原有基于Hadoop集群的應用,涵蓋了原始數據采集,數據倉庫應用,數據挖掘以及將數據回饋到前端應用等各個環節,共有超過1萬個Hive SQL、MapReduce任務以及外圍的各類工具,還有數十PB數據需要遷移到ODPS中。而更大的挑戰是,在項目進行過程中所有的任務和數據都是在不斷更新的。

為了保障項目的質量與進度,項目組當時制定的策略是避免重構,平滑遷移。也就意味著占遷移主體的所有Hive SQL任務不用進行改寫,直接運行在ODPS上,后來項目也很好地做到了這一點。實際上從4月份開始并行,直到5月底所有任務切換到ODPS,同樣的 SQL一直是并行運行在兩套系統上。原有的MapReducer任務經過簡單的接口改寫,很快也就遷移到了ODPS中。

對于海量的歷史數據,項目組開發了專門的工具,將客戶端以MapReduce的方式運行在老的Hadoop集群上,以高并發的方式通過ODPS Tunnel服務將數據寫入ODPS中,高峰時基本用滿了機房間帶寬,而Tunnel服務也通過水平擴展服務器的方式滿足了實際的要求。

項目的前期花了約兩個月的時間主要進行了底層平臺功能上的準備,從2013年12月19日開始正式的改造任務,至2014年4月1日開始并行,2014年5月底,所有的任務正式切換到了ODPS平臺上。

伴隨著登月的是用戶數據的增長,為了更好地支持業務,在7月份實際上又進行了一次集群間的遷移,而這次遷移對用戶幾乎完全透明,在前期做了充分準備后,僅停止服務約30分鐘,就將所有的數據遷移到了一個新的大規模集群上。這也從側面驗證了ODPS的多集群管理能力,對用戶而言提供了理想的擴展性及靈活性。相比于手工從Hadoop集群遷移海量數據的挑戰,這個過程平滑的可以算得上是一個奇跡!

談到這段歷程,參與登月1號的技術保障部技術專家大舞給出一個形象的比喻:“從Hadoop到ODPS,相當于在飛機飛行的過程中,將乘客從不同航空公司生產的不同型號的飛機之間實現搬遷,中途卻不能讓乘客有任何感覺。這不僅要面對飛機沒有統一接口的問題,還要求乘客在搬遷的過程中得換件衣服。”

從文件到列表,空中遷移絕技

登月1號的技術挑戰由此可見一斑,遷移意味著數據、線上任務、外圍的接口以及配套工具的全面切換與升級。

其中,最大的挑戰來自數據一致性。大舞表示:Hadoop采用的是文件方式存儲。而ODPS是表格方式。要將同樣的數據從文件導入表格,不只是數據格式,還有很多諸如定位符等細節都不相同。文件中的空格,到了表格中會自動變成兩列,這些都會對計算結果造成很大影響。但遷移必須要保證數據一致性,為了保障數據的質量,測試團隊開發了自動化對比工具,通過一輪輪迭代對比使數據完全一致。在此過程中發現的不一致,并沒有發現平臺的缺陷,而在很大程度上反映的是開源的Hadoop與ODPS在某些方面理念上的不同,比如對于臟數據的處理,Hive可以直接返回空值,而出于嚴謹的考慮,ODPS會將此視作異常。

從1號到N號,登月計劃加速

7個多月,225天,上萬個生產任務,數十PB數據,登月1號順利談到支付寶平臺升級所取得的成績,安道全表示:

■ 平臺的穩定性、效率方面:相較以往的任務處理效率,目前整體任務完成時間提前約5個小時,其中90%任務可在每日上午9點之前完成;另外通過Tunnel服務批量導出賬單,從小時級別降到約10分鐘級別,性能提升了5倍左右;

■ 平臺安全性方面:ODPS用基于數據對象的ACL授權機制完全替代了Hadoop下的HDFS文件授權機制,從根本上提高了數據權限的管理力度,并且在此基礎上衍生出Role、Policy、ProjectProtection、LabelSecurity等權限管理手段,在阿里集團內實踐證明可以對數千個用戶數百萬張表進行精確到字段級別的權限管理。

登月1號的成功,既驗證了飛天和ODPS可以信賴的技術實力,又更加堅定了各大業務部門實現登月計劃的信心。為了更好地服務用戶,在登月1號的任務遷移完成后,實際上還啟動了一些后續的計劃,比如將ODPS中的新研發的準實時SQL逐步的推廣使用,目標是縮短交互式的分析任務,提升用戶體驗,最快的任務縮短到了原來的1/3左右。交互式的分布式圖計算分析功能也已經投入使用,這些功能全部內置于ODPS中,用戶完全不需要自己花費精力在工具上。

目前,從登月2號到登月20+號的系列登月計劃已經逐一啟動。未來,淘系BI、MPI集群業務、直通車廣告、定投廣告、安全相關數據、共享業務、商家業務、天貓、淘寶、嗨淘等多個項目都將升級到ODPS。基于飛天提供開放數據處理服務的ODPS將成為承載阿里巴巴集團30多個事業部全部數據的統一處理平臺。從Oracle到Hadoop,阿里解決了海量數據存儲和分析的問題,數據業務不再受制于規模的瓶頸而發展;從Hadoop升級到ODPS,阿里掃清數據處理的障礙,真正構建起內部統一的大數據平臺。與此同時,不斷通過自身驗證過的飛天以及在設計之初就是為了對外開放、做基于互聯網的多租戶的公共數據處理服務ODPS,還將以阿里云的產品的方式對外開放服務,使得所有企業都能享受到相同質量的云服務。

可以預見的是,云計算帶來的數據處理能力使得數據服務平臺成為可能,阿里建設“數據分享第一平臺”的愿景距離實現已經不遠。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!