微信号:infoqchina

介绍:有内容的技术社区媒体

大数据分析利器,LinkedIn开源计算引擎Cubert

2014-12-23 12:21 InfoQ


近日,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上提供。


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 超酷算法:BK树 算法实战 | 图像处理, 宽度优先搜索, 位运算 坑系列 --- 时间和空间的平衡 程序员听过最多的谎言:需求再也不改了 专家答疑第7期:学习用Gradle构建Android项目