看新闻很累? 看技术新闻更累? 试试 下载 InfoQ 手机客户端 https://time.geekbang.org/?utm_source=website&utm_medium=infoq&utm_campaign=news&utm_content=app , 每天上下班路上听新闻, 有趣还有料!
eBay 的数据处理框架 Accelerator https://github.com/eBay/accelerator 提供并行执行和自动组织源代码, 输入数据及计算结果的功能. 它可以用于数据分析, 算法开发, 以及拥有大型数据文件和多个 CPU 的实时推荐系统. 它也有助于管理和记录数据文件, 计算, 计算结果和它们之间相互关系.
eBay 的团队最近 开源了 https://www.ebayinc.com/stories/blogs/tech/announcing-the-accelerator-processing-1-000-000-000-lines-per-second-on-a-single-computer/ 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 许可 https://www.apache.org/licenses/LICENSE-2.0 授权. 如果您有兴趣了解更多关于 ExpertMaker Accelerator 的信息, 请查阅 Github 存储库 https://github.com/eBay/accelerator , 安装存储库 https://github.com/eBay/accelerator-project_skeleton 和 用户参考手册 http://exax.org/pdf/acc_manual.pdf .
来源: http://www.tuicool.com/articles/qya63iF