LinkedIn開源Cubert,著眼于大數據分析
英文原文: LinkedIn Open Sources Cubert With an Eye To Big Data Analytics
近日,LinkedIn 開源了一款用于復雜大數據分析的高性能計算引擎 Cubert。這是為分析師和數據科學家編寫的一個框架,提供“手動編寫 Java 程序的所有效率優勢,并提供了一個簡單的、類似腳本的用戶接口,用于解決各種統計、分析和圖論問題”。其目標是,做上述所有工作而又不暴露底層細節。
Cubert 圍繞著實現更好的數據處理算法需求而設計。當性能是一個辨別因素時,Cubert 可以提供幫助,正如 LinkedIn 工程師所聲稱的那樣,即使從磁盤置換出數十 TB 大小的數據,其性能也可以超出其它引擎 5 到 60 倍。
Cubert 完全用 Java 開發,并提供一種腳本語言。它是針對報表領域里經常出現的復雜連接和聚合而設計的。Cubert 使用 MeshJoin 算法處理大時間窗口下的大數據集,CPU 和內存利用率顯著提升。CUBE 是 Cubert 定義的一個新操作符,可以計算累加和非累加分析維度。非累加維度是計算密集型的,如計算一個時間窗口內不同的用戶數,但 CUBE 能加快這些運算,而且還可以計算準確的百分等級,如中位數統計,動態上卷內部維度以及在單個任務中計算多個度量值。
Cubert 最適合于重復的報表工作流程,它利用部分結果緩存和增量處理技術來提高速度。最后,一種新的稀疏矩陣乘法算法可以用于大型圖的分析計算。
Pig UDF 支持已經實現,團隊計劃支持 UDF 以及來自 Pig 和 Hive 的存儲層。Cubert 目前運行在 MR 引擎上,不過,對 Tez 和 Spark 的支持正在進行中。Cubert 的文檔和代碼在 GitHub 上提供。
<span id="shareA4" class="fl"> </span>