eBay 的数据处理框架 Accelerator 提供并行执行和实时推荐功能

  • Srini Penchikala
  • 姚佳灵

2018 年 6 月 4 日

话题:大数据语言 & 开发架构AI

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

eBay 的数据处理框架Accelerator提供并行执行和自动组织源代码、输入数据及计算结果的功能。它可以用于数据分析、算法开发,以及拥有大型数据文件和多个 CPU 的实时推荐系统。它也有助于管理和记录数据文件、计算、计算结果和它们之间相互关系。

eBay 的团队最近开源了Accelerator 框架。Accelerator 最初是由瑞典 AI 公司 Expertmaker 于 2012 开发。eBay 在 2016 年收购了 Expertmaker。

该框架用于处理像事物日志、事件日志和数据库转储这样的日志文件。Accelerator 是基于 C/S 的应用程序。它的架构包括一个“runner”客户端和两个名为“daemon”和“urd”的服务器。

runner 程序运行在 daemon 服务器上执行作业的脚本(称为构建脚本,build scripts)。该服务器将加载并存储执行的所有作业的信息和计算结果。同时,所有作业将由 urd 服务器存储到作业日志文件系统数据库中。

Urd 服务器把作业和它们的依赖项一起存储在基于日志文件的数据库中。所有在构建脚本中发生的事情都可能被记录到 Urd 中。

数据集是 Accelerator 的默认存储类型,专为并行处理和高性能而设计的。

数据集构建于作业之上,因此,数据集通过各种方法创建并存储在作业目录中,就像任何一个作业结果一样。单个作业也许包含任意数目的数据集,因此可以把一个输入数据集分成若干个新数据集。

该 Accelerator 的关键特性是重用计算结果和数据流。如果一项作业已经存在,Accelerator 将不再构建此项作业。这节省了执行时间,并有助于在用户之间共享计算结果。它还提供了可见性并确保了确定性。数据流有助于处理连续的数据块,比在数据库里执行查询更有效率。流式传输是实现从硬盘到 CPU 高带宽的最佳途径,可以很好地利用操作系统基于 RAM 的硬盘缓冲区。

Accelerator 内存占用很小,可以在笔记本电脑或机架式服务器上运行。在开源之前,像 Safeway、星巴克、eBay 和 Vodafone 这样的公司已经把它运用于项目中了。

它获得了Apache 2.0 许可授权。如果您有兴趣了解更多关于 ExpertMaker Accelerator 的信息,请查阅Github 存储库安装存储库用户参考手册

阅读英文原文eBay's Accelerator Data Processing Framework Provides Parallel Execution and Live Recommendations


感谢冬雨对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

大数据语言 & 开发架构AI