騰訊正式開源圖計算框架Plato,十億級節點圖計算進入分鐘級時代
- 2019 年 11 月 14 日
- 筆記
騰訊開源再次迎來重磅項目,14日,騰訊正式宣布開源高性能圖計算框架Plato,這是在短短一周之內,開源的第五個重大項目。
相對於目前全球範圍內其它的圖計算框架,Plato可滿足十億級節點的超大規模圖計算需求,將算法計算時間從天級縮短到分鐘級,性能全面領先領先於其它主流分佈式圖計算框架,並且打破了原本動輒需要數百台服務器的資源瓶頸,現在,最少只需要十台服務器即可完成計算。
騰訊Plato團隊負責人於東海表示:「Plato已經支持騰訊內部包括微信在內的眾多核心業務,尤其是為騰訊超大規模社交網絡圖數據的各類計算提供支撐,解決了現有其他計算框架無法在有限資源和有限時間內完成計算的難點。Plato不僅為騰訊創造了巨大的業務價值,開源後還將持續推動圖計算技術和行業的協同發展,加速創新。」
實際上,圖計算的「圖」並不是指普通的圖像和照片,而是用於表示對象之間關聯關係的一種抽象數據結構,圖計算就是以圖作為數據模型來表達問題並予以解決的過程。圖計算可以將不同來源、不同類型的數據融合到同一個圖裡進行分析,得到原本獨立分析難以發現的結果,因此成為社交網絡、推薦系統、網絡安全、文本檢索和生物醫療等領域至關重要的數據分析和挖掘工具。
Plato是騰訊內部圖計算TGraph團隊整合內部資源自主研發的一款高性能圖計算框架,取名Plato是為了致敬偉大的數學家柏拉圖,目前騰訊雲大數據團隊正在封裝Plato,即將對所有開發者開放使用。
據了解,Plato的計算性能方面極其強悍,比目前市場上最為領先的圖計算框架Spark GraphX還高出1-2個數量級,它將算法計算時間從天級縮短到分鐘級,性能提升數十倍,也標誌着圖計算全面進入分鐘級時代;另外一個巨大優勢是,Plato在內存消耗方面遠小於主流的圖計算框架,比Spark GraphX減少1-2個數量級,僅需10台服務器左右的中小規模集群,即可完成超大規模圖計算,相比此前動輒需要數百台服務器的限制,資源壓力和計算成本都得到了極大降低。
目前,Plato主要提供兩大核心能力:騰訊數據量級下的離線圖計算和騰訊數據量級下的圖表示學習。同時Plato天然適配Kubernetes、YARN等資源調度平台,並提供支持主流文件系統的多種接口,能為開發者提供更友好的運行環境。
架構設計上,Plato框架的核心是自適應圖計算引擎,它能夠根據不同類型的圖算法,提供多種計算模式供開發者靈活選擇,包括自適應計算模式、共享內存計算模式和流水線計算模式等。另外,還設計了良好的接口支持接入新的計算通信模式。
Plato整體架構圖
在計算引擎之上,Plato為算法設計者或具體的業務提供多層次接口:從底層的API,到圖算法庫,再到為具體業務量身打造的「解決方案」——圖工具集。通過這些應用層的接口和工具,Plato還可以把離線計算結果與其他機器學習算法相結合,共同支撐頂層的不同業務。
值得一提的是,目前Plato的算法庫中的圖特徵、節點中心性指標、連通圖和社團識別等多種算法都已經開源,未來還將進一步開源更多的算法。
Plato高性能、可擴展、易插拔的特性在社交網絡、推薦系統、生物醫療等領域應用前景廣闊,例如定期對網頁進行影響力排序以提升用戶的搜索體驗、分析龐大的社交網絡結構以便精準地為用戶推薦服務、通過子圖匹配等方式了解蛋白質間的相互作用從而研製更有效的臨床醫藥等。
自去年930架構調整以來,開源協同成為騰訊技術發展的重要戰略之一,並帶動了重磅項目密集對外開源。就在上周的Techo開發者大會上,騰訊正式宣布TubeMQ、Tencent Kona JDK、TBase、TKEStack四大重點項目開源。隨着Plato的開源,騰訊在開源領域又添大動作。據悉,騰訊已經在Github上已經開源了89個項目,超過1000個貢獻者參與了開源貢獻,擁有超過26萬個Star數,在Github全球公司貢獻榜上居於前列。
Plato開源地址:https://github.com/tencent/plato