Cubert - 高性能计算引擎


Apache
跨平台
Java

软件简介

Cubert是一个用于复杂大数据分析的高性能计算引擎。这是为分析师和数据科学家编写的一个框架,提供“手动编写Java程序的所有效率优势,并提供了一个简单的、类似脚本的用户接口,用于解决各种统计、分析和图论问题”。其目标是,做上述所有工作而又不暴露底层细节。

Cubert围绕着实现更好的数据处理算法需求而设计。当性能是一个辨别因素时,Cubert可以提供帮助,正如LinkedIn工程师所声称的那样,即使从磁盘置换出数十TB大小的数据,其性能也可以超出其它引擎5到60倍。

Cubert完全用Java开发,并提供一种脚本语言。它是针对报表领域里经常出现的复杂连接和聚合而设计的。Cubert使用MeshJoin算法处理大时间窗口下的大数据集,CPU和内存利用率显著提升。CUBE是Cubert定义的一个新操作符,可以计算累加和非累加分析维度。非累加维度是计算密集型的,如计算一个时间窗口内不同的用户数,但CUBE能加快这些运算,而且还可以计算准确的百分等级,如中位数统计,动态上卷内部维度以及在单个任务中计算多个度量值。

Cubert最适合于重复的报表工作流程,它利用部分结果缓存和增量处理技术来提高速度。最后,一种新的稀疏矩阵乘法算法可以用于大型图的分析计算。