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)关注我们。
领取专属 10元无门槛券
私享最新 技术干货