BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 並列実行とライブレコメンデーションを可能にするeBayのAcceleratorデータ処理フレームワーク

並列実行とライブレコメンデーションを可能にするeBayのAcceleratorデータ処理フレームワーク

原文(投稿日:2018/05/31)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。

eBayのAcceleratorデータ処理フレームワークは、並列実行機能と、ソースコードと入力データ、結果の自動管理を可能にする。大規模データと複数のCPUを使用したデータ分析やアルゴリズム開発、さらにはライブレコメンデーションシステムでの利用が可能だ。データファイルと計算結果、それらの関連性の管理や整理、計算にも有効である。

eBayチームは先頃、Acceleratorフレームワークをオープンソースとして公開した。Acceleratorは元々、スウェーデンのAI企業であるExpertmakerが2012年に開発したもので、eBayが2016年に同社を買収した。

このフレームワークはトランザクションログやイベントログなどのログファイルや、データベースダンプを処理する目的で開発された、クライアント-サーバをベースとしたアプリケーションである。アーキテクチャには、runnerというクライアントと、daemonとurdという2つのサーバが含まれている。

runnerプログラムはスクリプト(ビルドスクリプトと呼ばれる)を実行して、daemonサーバ上でジョブを起動する。このサーバは、実行するすべてのジョブの情報と結果をロードして格納する。それと並行して、すべてのジョブが、urdサーバによってジョブログファイルシステムデータベース格納される。

urdサーバはジョブと合わせて、その依存関係をログファイルベースのデータベースに格納する。ビルドスクリプトで実行されるすべての内容をurdに記録することも可能だ。

データセット(dataset)はAcceleratorの既定のストレージタイプであり、並列処理と高性能を目的として設計されている。

データセットはジョブ上に構築されているので、メソッドによって生成され、ジョブの実行結果と同じようにジョブディレクトリに格納される。ジョブには任意の数のデータセットを含むことができるので、単一の入力データセットを複数の新たなデータセットに分割することが可能である。

Acceleratorの重要な機能は、再利用とデータストリーミングである。ジョブがすでに存在する場合、Acceleratorは同じジョブを構築しない。これによって実行時間の節約と、ユーザ間での結果の共有が可能になる。さらに、可視性を提供し、決定論(determinism)を保証する。データストリーミングは、データの連続的なチャンクの処理を支援することにより、データベースのクエリよりもはるかに効率的な処理を可能にする。ストリーミングはディスクからCPUへの広帯域幅を実現する上で最適な方法であり、オペレーティングシステムのRAMベースのディスクバッファを有効に活用することができる。

Acceleratorのフットプリントは極めて小さく、ラップトップでもラックサーバと同じように動作する。オープンソース化される前には、SafewayやStarbucks、eBay、Vodafoneなどのプロジェクトで使用されていた。

AcceleratorはApache 2ライセンスで提供される。ExpertMaker Acceleratorについてさらに詳しく知りたい場合は、Githubリポジトリインストーラリポジトリユーザリファレンスマニュアルなどを確認するとよいだろう。

 

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT