読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、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リポジトリやインストーラリポジトリ、ユーザリファレンスマニュアルなどを確認するとよいだろう。
この記事を評価
- 編集者評
- 編集長アクション