Linkedin周二宣布开源其大数据计算引擎Cubert,其名字来源于鲁比克方块(Rubik’s Cube),为了让开发人员更容易使用Cubert,而无需做任何形式的自定义编码,Linkedin为此开发了新的编程语言Cubert Script。 以下为译文: Linkedin周二宣布开源其大数据计算引擎Cubert,这个框架可以使用一种专门的算法来组织数据,让其在没有超系统负荷和浪费CPU资源的情况下,更轻松的运行查询。 Cubert,其名字来源于鲁比克方块(Rubik’s Cube),据悉,它可以作为一个Java应用程序,从而很容易被工程师接受,它包含一个“类似script用户界面”,因此工程师可以在运行查询时,使用诸如MeshJoin 和 Cube算法在组织数据上节省系统资源。 从 LinkedIn博客我们知道: 现存引擎Apache Pig、Hive 以及Shark提供一个合乎逻辑的声明性语言,然后被翻译成一个实物计划。这个计划执行分布式引擎(Map-Reduce、Tez 或者Spark),在此物理操作者针对数据分区执行。最后,数据分区将由HDFS提供的文件系统抽象管理。 Cubert 架构 Cubert运行在Hadoop之上,新的框架可以抽象所有的存储到数据块,这将除了让操作者能帮助更好的管理数据之外,还能让其更易于运行它的资源节约算法,例如,COMBINE操作者可以合并多个数据块在一起,PIVOT操作者可以创建数据块的子集。 LinkedIn也创建了一门名为CubertScript的新语言,其目的是使开发人员更容易使用Cubert,而无需做任何形式的自定义编码。
LinkedIn现在使用Cubert作为一个关键组件来处理数据。当Kafka实时消息传递系统从LinkedIn的众多应用程序中获取所有信息并将其发送到Hadoop,Cubert然后处理这些数据,以确保它不占用系统资源并帮助工程师解决“各种各样的统计、分析和图形计算问题。” 被处理后,数据流向LinkedIn的Pinot实时数据分析系统,然后该公司分析其众多数据跟踪特性,如最近谁查看了用户的资料。 LinkedIn Data Pipeline 现在Cubert已经和LinkedIn的基础设施连接,公司不再担心Hadoop脚本终结“在集群上占用太多资源”或浪费时间去做他们为此应该做的。 |