阿里靠什麼支撐 EB 級計算力?

圖片描述

做者 關濤 阿里雲智能事業羣 研究員java

導讀:MaxCompute 是阿里EB級計算平臺,通過十年磨礪,它成爲阿里巴巴集團數據中臺的計算核心和阿里雲大數據的基礎服務。去年MaxCompute 作了哪些工做,這些工做背後的緣由是什麼?大數據市場進入普惠+紅海的新階段,如何與生態發展雙贏?人工智能進入井噴階段,如何支持與借力?本文從過去一年的總結,核心技術概覽,以及每條技術線路將來展望等幾個方面作一個概述。python

BigData 概念在上世紀90年代被提出,隨 Google 的3篇經典論文(GFS,BigTable,MapReduce)奠定,已經發展了超過10年。這10年中,誕生了包括Google 大數據體系,微軟 Cosmos 體系,開源 Hadoop 體系等優秀的系統,這其中也包括阿里雲的飛天系統。這些系統一步一步推進業界進入「數字化「和以後的「 AI 化」的時代。算法

同時,與其餘老牌系統相比(如,Linux 等操做系統體系,數據庫系統、中間件,不少有超過30年的歷史),大數據系統又很是年輕,隨着雲計算的普惠,正在大規模被應用。海量的需求和迭代推進系統快速發展,有蓬勃的生機。(技術體系的發展,能夠經過以下 Hype-Cycle 概述,做者認爲,大數據系統的發展進入技術復興期/Slope of Enlightenment,並開始大規模應用 Plateau of Productivity。)
圖片描述數據庫

上圖來自Gartner編程

若是說,0到1上線標誌一個系統的誕生,在集團內大規模部署標誌一個系統的成長,在雲上對外大規模服務標誌一個系統的成熟。安全

MaxCompute 這10年已經走向成熟,通過屢次升級換代,功能、性能、服務、穩定性已經有一個體系化的基礎,成爲阿里巴巴集團數據中臺的計算核心和阿里雲大數據的基礎服務。服務器

  1. MaxCompute(ODPS)概述

1.1 背景信息:十年以後,回頭看什麼是大數據網絡

"Big data represents the information assets characterized by such a high volume, velocity and variety torequire specific technology and analytical methods for its transformation intovalue. "架構

用5個「V」來描述大數據的特色:框架

Volume (數據量):數據量非線性增加,包括採集、存儲和計算的量都很是大,且增速很快。
Variety (數據類型):包括結構化和非結構化的數據,特別是最近隨音視圖興起,非結構化數據增速更快。
Velocity(數據存儲和計算的增加速度):數據增加速度快,處理速度快,時效性要求高。
Veracity(信噪比):數據量越大,噪聲越多,須要深刻挖掘數據來獲得結果。
Value(價值):數據做爲一種資產,有 1+1>2 的特色。
圖片描述

總結下來,大數據具有以下的五個趨勢:

數據爆炸致使數據和計算量增速很高,不少時候超過業務增速,帶來成本壓力!
數據量變大,但單位數據的價值在降低,深度挖掘勢在必行,但反過來要求計算力的進一步提高。
非結構化數據處理,成爲趨勢。
時效性,是能完成任務以後,用戶的新期待。
超大規模的數據和計算,對人工管理是一個挑戰。
上述趨勢,也會得出了做爲大數據平臺,咱們要發力的方向:計算力、智能化、生態系統。

1.2 MaxCompute 定位

阿里雲大數據計算服務( MaxCompute,原名 ODPS )是阿里雲提供的一種安全可靠、高效能、低成本、從 GB 到 EB 級別按需彈性伸縮的在線大數據計算服務。MaxCompute 向用戶提供了豐富的大數據開發工具、完善的數據導入導出方案以及多種經典的分佈式計算模型。可以最快速地解決用戶海量數據計算問題,有效下降企業大數據計算平臺的整體擁有成本,提升大數據應用開發效率,並保障數據在雲計算環境的安全。被普遍地應用於互聯網海量數據分析類場景。

MaxCompute 是大數據雲數倉的數據聚集點,存儲和管理 EB 級數據,支持彈性伸縮的高性能大數據計算服務:它不僅是個單一的引擎,而是一個平臺。

「不是單一的引擎」體如今,MaxCompute 原生支持 SQL、MR、DAG 編程語義和Graph、PAI 機器學習計算,同時也經過聯合計算平臺支持任意第三方引擎,如Spark、Flink等 。

「一個平臺」體如今,MaxCompute 提供統一高效的數據存儲,可靠的元數據服務,跨地域多集羣管理,和數據/計算調度能力。

MaxCompute 以其可靠性、高性能、擴展性、安全性和富生態被普遍的用於互聯網海量數據分析場景,如海量數據分析與處理、大數據倉庫、產品維度報表、機器學習訓練、等場景。
圖片描述

1.3 競品對比與分析

大數據發展到今天,數據倉庫市場潛力仍然巨大,更多客戶開始選擇雲數據倉庫,CDW仍處於高速增加期。當前互聯網公司和傳統數倉廠家都有進入領導者地位,競爭激烈,阿里巴巴CDW在全球權威諮詢與服務機構Forrester發佈的《The Forrester WaveTM: CloudData Warehouse, Q4 2018》報告中位列中國第一,全球第七。

在 CDW 的領導者中,AWS Redshift 高度商業化、商業客戶部署規模領先整個市場,GoogleBigQuery 以高性能、高度彈性伸縮得到領先,Oracle 雲數倉服務以自動化數倉技術得到領先。

MaxCompute 當前的定位是市場競爭者,目標是成爲客戶大數據的「航母」級計算引擎,解決客戶在物聯網、日誌分析、人工智能等場景下日益增加的數據規模與計算性能降低、成本上升、複雜度上升、數據安全風險加大之間的矛盾。在此目標定位下,對 MaxCompute 在智能數倉、高可靠性、高自動化、數據安全等方面的能力提出了更高的要求。

  1. 2018年MaxCompute技術發展概述

過去的一個財年,MaxCompute 在技術發展上堅持在覈心引擎、開放平臺、技術新領域等方向的深耕,在業務上繼續匠心打造產品,擴大業界影響力。

效率提高

2018年9月雲棲大會發布,MaxCompute 在標準測試集 TPC-BB 100TB總體指標較2017年提高一倍以上。
圖片描述

得益於總體效率的提高,在集團內部 MaxCompute 以20%的硬件增加支撐了超過70%的業務增加。
圖片描述

系統開放性和與生態融合

聯合計算平臺 Cupid 逐步成熟,性能與 EMR Spark Benchmark 持平,支持K8S 接口,支持完整的框架安全體系,Spark On MaxCompute 已開始支持雲上業務。
Python 分佈式項目 MARS 正式發佈,開源兩週內收穫1200+ Star,填補了國內在 Python 生態上支持大規模分佈式科學計算的空白,是競品 Dask 性能的3倍。

探索新領域

MaxCompute 持續在前沿技術領域投入,保持技術先進性。在下一代引擎方向,如:

AdaptiveOperators
Operator Fusion
ClusteredTable
智能數倉 Auto Datawarehouse 方向上的調研都取得了不錯的進展。在漸進計算、Advanced FailChecking and Recovery 、基於 ML的分佈式計算平臺優化、超大數據量 Query 子圖匹配等多個方向上的調研也在進行中。

深度參與和推進全球大數據領域標準化建設

2018年11月,MaxCompute 與 DataWorks/AnalyticDB一塊兒表明阿里雲入選 Forrester Wave™ Q4 2018雲數據倉庫研究報告,在產品能力綜合得分上力壓微軟,排名全球第七,中國第一。

2019年3月,MaxCompute 正式表明 Alibaba 加入了 TPC 委員會推進融入和創建標準。

MaxCompute 持續在開源社區投入。成爲全球兩大熱門計算存儲標準化開源體系 ORC 社區的 PMC,MaxCompute 成爲近兩年貢獻代碼量最多的貢獻者,引導存儲標準化;在全球最熱門優化器項目 Calcite,擁有一個專委席位,成爲國內前兩傢俱有該領域影響力的公司,推進數十個貢獻。

  1. 核心技術棧

大數據市場進入普惠+紅海的新階段,如何借力井噴階段中的人工智能,如何與生態發展雙贏?

基於橫向架構上的核心引擎和系統平臺,MaxCompute 在計算力、生態化、智能化3個縱向上着力發展差別化的競爭力。
圖片描述
圖片描述

3.1 計算力

首先咱們從計算力這個角度出發,介紹一下 MaxCompute 的技術架構。

圖片描述

a.核心引擎

支撐 MaxCompute 的計算力的核心模塊之一是其 SQL 引擎:在 MaxCompute 的做業中,有90%以上的做業是 SQL 做業,SQL 引擎的能力是 MaxCompute 的核心競爭力之一。

在 MaxCompute 產品框架中,SQL 引擎將用戶的 SQL 語句轉換成對應的分佈式執行計劃來執行。SQL 引擎由3個主要模塊構成:

編譯器 Compiler:對 SQL 標準有友好支持,支持100% TPC-DS 語法;並具有強大都錯誤恢復能力,支持 MaxCompute Studio 等先進應用。
運行時 Runtime:基於LLVM優化代碼生產,支持列式處理與豐富的關係算符;基於 CPP 的運行時具備更高效率。
優化器 Optimizer:支持HBO和基於 Calcite 的 CBO, 經過多種優化手段不斷提高 MaxCompute 性能。
圖片描述

圖中部分功能只在阿里集團內部發布,雲上版本會陸續發佈上線

MaxComputeSQL 引擎當前的發展,以提高用戶體驗爲核心目標,在 SQL 語言能力、引擎優化等多個方向上兼顧發力,創建技術優點,在 SQL 語言能力方面, 新一代大數據語言 NewSQL 作到了 Declarative 語言和 Imperative 語言的融合,進一步提高語言兼容性,目前已100% 支持 TPC-DS 語法。過去一年中,MaxCompute 新增了對 GroupingSets,If-Else 分支語句,動態類型函數,等方面的支持。

b.存儲

MaxCompute 不只僅是一個計算平臺,也承擔着大數據的存儲。阿里巴巴集團99%的大數據存儲都基於 MaxCompute,提升數據存儲效率、穩定性、可用性,也是MaxCompute一直努力的目標。

MaxCompute 存儲層處於 MaxCompute Tasks 和底層盤古分佈式文件系統之間,提供一個統一的邏輯數據模型給各類各樣的計算任務。MaxCompute 的存儲格式演化,從最先的行存格式 CFile1,到第一個列存儲格式 CFile2,到第三代存儲格式。支持更復雜的編碼方式,異步預讀等功能,進一步提高效能。在存儲和計算2個方面都帶來了效能的提高。存儲成本方面,在阿里巴巴集團內經過 新一代的列存格式節省約8%存儲空間,直接下降約1億成本;在計算效率上,過去的一個財年中發佈的每一個版本之間都實現了20%的提高。目前在集團內大規模落地的過程當中。

圖片描述

在歸檔以及壓縮方面,MaxCompute 支持 ZSTD 壓縮格式,以及壓縮策略,用戶能夠在 Normal,High 和 Extreme 三種 Stategy 裏面選擇。更高的壓縮級別,帶來更高效的存儲,但也意味着更高的讀寫 CPU 代價。

2018年, MaxCompute 陸續推出了 Hash Clustering 和 Range Clustering 支持富結構化數據,並持續的進行了深度的優化,例如增長了 ShuffleRemove,Clustering Pruning 等優化。從線上試用數據,以及大量的 ATA 用戶實踐案例也能夠看出,Clustering 的收益也得到了用戶的承認。

c.系統框架

資源與任務管理:MaxCompute 框架爲 ODPS 上面各類類型的計算引擎提供穩定便捷的做業接入管理接口,管理着 ODPS 各類類型 Task 的生命週期。過去一年對短做業查詢的持續優化,縮短 e2e 時間,增強對異常做業(OOM)的自動檢測與隔離處理,全面打開服務級別流控,限制做業異常提交流量,爲服務總體穩定性保駕護航。

MaxCompute 存儲着海量的數據,也產生了豐富的數據元數據。在離線元倉統計T+1的狀況下,用戶至少須要一天後才能作過後的數據風險審計,現實場景下用戶但願更早風險控制,將數據訪問事件和項目空間受權事件經過 CUPID 平臺實時推送到用戶 DataHub 訂閱,用戶能夠經過消費 DataHub 實時獲取項目空間表、volume數據被誰訪問等。

元數據管理:元數據服務支撐了 MaxCompute 各個計算引擎及框架的運行。天天運行在 MaxCompute 的做業,都依賴元數據服務完成 DDL,DML 以及受權及鑑權的操做。元數據服務保障了做業的穩定性和吞吐率,保障了數據的完整性和數據訪問的安全性。元數據服務包含了三個核心模塊:

Catalog :完成DDL,DML及DCL(權限管理)的業務邏輯,Catalog保障MaxCompute做業的ACID特性。
MetaServer:完成元數據的高可用存儲和查詢能力。
AuthServer:是高性能和高QPS的鑑權服務,完成對 MaxCompute 的全部請求的鑑權,保障數據訪問安全。
元數據服務通過了模塊化和服務化後,對核心事務管理引擎作了屢次技術升級,經過數據目錄多版本,元數據存儲重構等改造升級,保障了數據操做的原子性和強一致,並提升了做業提交的隔離能力,並保障了線上做業的穩定性。

在數據安全愈來愈重要的今天,元數據服務和阿里巴巴集團安所有合做,權限系統升級到了2.0。核心改進包括:

MAC(強制安全控制)及安全策略管理:讓項目空間管理員能更加靈活地控制用戶對列級別敏感數據的訪問,強制訪問控制機制(MAC)獨立於自主訪問控制機制(DAC)。
數據分類分級:新增數據的標籤能力,支持對數據作隱私類數據打標。
精細權限管理:將ACL的管控能力拓展到了 Package 內的表和資源,實現字段級的權限的精細化管理。
系統安全:系統安全方面,MaxCompute 經過綜合運用計算虛擬化和網絡虛擬化技術,爲雲上多租戶各自的用戶自定義代碼邏輯提供了安全並且完善的計算和網絡隔離環境。

SQL UDF(python udf 和 java udf),CUPID聯合計算平臺(Sparks/Mars等),PAI tensorflow 等計算形態都基於這套統一的基礎隔離系統構建上層計算引擎。

MaxCompute 還經過提供原生的存儲加密能力,抵禦非受權訪問存儲設備的數據泄露風險。MaxCompute 內置的存儲加密能力,能夠基於KMS雲服務支持用戶自定義祕鑰(BYOK)以及AES256加密算法,並計劃提供符合國密合規要求的SM系列加密算法支持。

結合MaxCompute元倉(MetaData)提供的安全審計能力和元數據管理(MetaService)提供的安全受權鑑權能力,以及數據安全生態中安全衛士和數據保護傘等安全產品,就構成了 MaxCompute安全棧完整大圖。

圖片描述

3.2 生態化

做爲一個大規模數據計算平臺,MaxCompute 擁有來自各種場景的EB級數據,須要快速知足各種業務發展的須要。在真實的用戶場景中,不多有用戶只用到一套系統:用戶會有多份數據,或者使用多種引擎。聯合計算融合不一樣的數據,豐富 MaxCompute 的數據處理生態,打破數據孤島, 打通阿里雲核心計算平臺與阿里雲各個重要存儲服務之間的數據鏈路。聯合計算也融合不一樣的引擎,提供多種計算模式,支持開源生態。開源能帶來豐富和靈活的技術以賦能業務,經過兼容開源API對接開源生態。另外一方面,在開源過程當中咱們須要解決最小化引入開源技術成本及打通數據、適配開源接口等問題。
圖片描述

a.Cupid 聯合計算平臺

聯合計算平臺 Cupid 使一個平臺可以支持 Spark、Flink、Tensorflow、Numpy、ElasticSearch 等多種異構引擎, 在一份數據上作計算。在數據統1、資源統一的基礎上,提供標準化的接口,將不一樣的引擎融合在一塊兒作聯合計算。

Cupid 的工做原理是經過將 MaxCompute 所依賴的 Fuxi 、Pangu 等飛天組間接口適配成開源領域常見的 Yarn、HDFS 接口,使得開源引擎能夠順利執行。如今,Cupid 新增支持了 Kubernetes 接口,使得聯合計算平臺更加開放。

案例:Spark OnMaxCompute

Spark 是聯合計算平臺第一個支持的開源引擎。基於 Cupid 的 Spark on MaxCompute 實現了與 MaxCompute 數據/元數據的完美集成;遵循 MaxCompute 多租戶權限及安全體系;與Dataworks、PAI平臺集成;支持 Spark Streaming,Mllib, GraphX,Spark SQL,交互式等完整 Spark生態;支持動態資源伸縮等。

b.多源異構數據的互聯互通

隨着大數據業務的不斷擴展,新的數據使用場景在不斷產生,用戶也指望把全部數據放到一塊兒計算,從而能取得 1+1 > 2 這樣更好的結果。

MaxCompute 提出了聯合計算,將計算下推,聯動其餘系統:將一個做業在多套系統聯動,利用起各個系統可行的優化,作最優的決策,實現數據之間的聯動和打通。
圖片描述

圖爲MaxCompute集團內和專有云能力,公共雲已實現與OSS、OTS的數據互通

MaxCompute 經過異構數據支持來提供與各類數據的聯通,這裏的「各類數據」是兩個維度上的:

多樣的數據存儲介質(外部數據源),插件式的框架能夠對接多種數據存儲介質。當前支持的外部數據源有:
OSS
TableStore(OTS)
TDDL
Volume
多樣的數據存儲格式:開源的數據格式支持,如 ORC、Parquet 等;半結構化數據,如包括 CSV、Json等隱含必定schema 的文本文件;徹底無結構數據,如對OSS上的文本,音頻、圖像及其餘開源格式的數據進行計算。
基於MaxCompute 異構數據支持,用戶經過一條簡單的 DDL 語句便可在 MaxCompute 上建立一張EXTERNAL TABLE(外表),創建 MaxCompute 表與外部數據源的關聯,提供各類數據的接入和輸出能力。

建立好的外表在大部分場景中能夠像普通的 MaxCompute 表同樣使用,充分利用 MaxCompute 的強大計算力和數據集成、做業調度等功能。MaxCompute 外表支持不一樣數據源之間的 Join,支持數據融合分析,從而幫助您得到經過查詢獨立的數據孤島沒法得到的獨特看法。從而MaxCompute 能夠把數據查詢從數據倉庫擴展到EB級的數據湖(如OSS),快速分析任何規模的數據,沒有MaxCompute存儲成本,無需加載或 ETL。
圖片描述

異構數據支持是MaxCompute 2.0升級中的一項重大更新,意在豐富 MaxCompute 的數據處理生態,打破數據孤島,打通阿里雲核心計算平臺與阿里雲各個重要存儲服務之間的數據鏈路。

c.Python 生態和 MARS科學計算引擎

MaxCompute 的開源生態體系中,對 Python 的支持主要包括 PyODPS、Python UDF、和MARS。

PyODPS 一方面是 MaxCompute 的 PythonSDK,同時也提供 DataFrame 框架,提供相似 pandas 的語法,能利用 MaxCompute 強大的處理能力來處理超大規模數據。基於 MaxCompute 豐富的用戶自定義函數(UDF)支持,用戶能夠在 ODPS SQL 中編寫 Python UDF 來擴展 ODPS SQL。 MARS 則是爲了賦能 MaxCompute 科學計算,全新開發的基於矩陣的統一計算框架。使用 Mars 進行科學計算,不只能大幅度減小分佈式科學計算代碼編寫難度,在性能上也有大幅提高。

3.3 智能化

隨着大數據的發展,咱們在幾年前就開始面對數據/做業爆發式增加的趨勢。面對百萬計的做業和表,如何作管理呢?MaxCompute 經過對歷史做業特徵的學習、基於對數據和做業的深入理解,讓 MaxCompute 上的業務必定程度實現自適應調整,讓算法和系統幫助用戶自動、透明、高效地進行數倉管理和重構優化工做,實現更好地理解數據,實現數據智能排布和做業全球調度,作到大數據處理領域的「自動駕駛」,也就是咱們所說的Auto DataWarehousing。

Auto Data Warehousing 在線上真實的業務中,到底能作什麼呢?咱們以Hash Clustering 的自動推薦來小試牛刀。Hash Clustering 通過一年多的發展,功能不斷完善,但對用戶來講,最難的問題仍然在於,給哪些表創建怎樣的 Clustering 策略是最佳的方案?

MaxCompute 基於 Auto Data Warehousing,來實現爲用戶推薦如何使用 HashClustering,回答如何選擇 Table、如何設置Cluteringkey 和分桶數等問題,讓用戶在海量數據、海量做業、快速變化的業務場景下,充分利用平臺功能。
圖片描述

  1. 商業化歷程

從2009年雲梯到 ODPS,再到 MaxCompute,MaxCompute(ODPS) 這個大數據平臺已經發展了十年。回顧 MaxCompute 的發展,首先從雲梯到完成登月,成爲了一個統一的大數據平臺。
圖片描述

2014年,MaxCompute 開始商業化的歷程,走出集團、向公共雲和專有云輸出,直面中國、乃至全球的用戶。面對挑戰,MaxCompute 堅持產品核心能力的加強,以及差別化能力的打造, 贏得了客戶的選擇。回顧上雲歷程,公共雲的第一個節點華東2上海在2014(13年)年7月開服,通過4年多發展,MaxCompute 已在全球部署18個Region,爲雲上過萬家用戶提供大數據計算服務,客戶已覆蓋了新零售、傳媒、社交、互聯網金融、健康、教育等多個行業。專有云的起點則從2014年8月第一套POC環境部署開始,發展至今專有云總機器規模已超過10000臺;輸出項目150+套,客戶涵蓋城市大腦,大安全,稅務,等多個重點行業。

今天,MaxCompute 在全球有超過十萬的服務器,經過統一的做業調度系統和統一的元數據管理,這十萬多臺服務器就像一臺計算機,爲全球用戶提供提供包括批計算、流計算、內存計算、機器學習、迭代等一系列計算能力。這一整套計算平臺成爲了阿里巴巴經濟體,以及阿里雲背後計算力的強有力支撐。MaxCompute 做爲一個完整的大數據平臺,將不斷以技術驅動平臺和產品化發展,讓企業和社會可以擁有充沛的計算能力,持續快速進化,驅動數字中國。

相關文章
相關標籤/搜索