原文(投稿日:2011/11/13)へのリンク
Hadoop Worldのキーノートにおいて、eBayは完全に再構築したサーチエンジンCassiniのアーキテクチャについて説明し、2012年に稼動させる予定であることを表明した。このシステムはランキング生成を改善するためにコンテンツとユーザメタデータをすべてインデックス化しており、毎時それらインデックスを更新する。毎時のインデックス更新にはApache Hadoopを、アイテム情報へのランダムアクセスにはApache HBaseが使われている。eBayマーケットプレイスのVP Search, Experience & Platforms、Hugh E. Williams氏がキーノートを行い、その規模、使われた技術、100名を超えるエンジニアがeBayのコアサイトサーチを完全に再構築した18か月の経験について話した。新しいプラットフォームCassiniは以下をサポートする。
- 9700万のアクティブバイヤー&セーラー
- 一日に25,000万クエリ
- 50,000カテゴリ以上、20000万アイテム
すでにeBayは分析のために9 PBものデータをHadoopとTeradataクラスタにストアしているが、これはユーザが直接利用する最初のプロダクトになるだろう。新しいシステムは現在のシステム (Galileo) よりも大きなものになる。
これまでのシステム: Galileo |
新しいシステム: Cassini |
ランキングに使われる因子が数十 |
ランキングに使われる因子が数百 |
デフォルトではタイトルマッチのみ |
デフォルトですべてのデータをマッチに使う |
公開、モニタリング、修正には手作業が必要 |
公開、モニタリング、修正の自動化 |
Cassiniは履歴データをオンラインに90日保存する。現在これは10億アイテムであり、ユーザおよびランキングのための行動データも含まれている。サーチシステムに必要な作業の多くは、Hadoopで走る毎時のバッチ処理でなされている。各種インデックスはすべて同じクラスタで生成される。(これはGalileoに比べて改善されている。これまではインデックスの種類ごとにクラスタが異なっていた)。Hadoop環境のおかげで、改善がなされるとeBayはサイトの全商品を復元したり再分類することが可能になる。
アイテムはHBaseに格納され、通常毎時のインデックス更新でスキャンされる。新しいアイテムがリストされると、HBaseで検索され、数分以内に動作中のインデックスに追加される。またHBaseは、バルクおよびインクリメンタルなアイテム書き込み、そして、アイテム注釈のための高速なアイテム読み書きを可能にする。
Williams氏によると、チームはHadoopを動かすことに慣れており、ほとんど問題なく確実に仕事を完了できたようだ。その一方で「HBaseの使いこなしは大変だった」と彼は語った。Williams氏は、eBayはこのテクノロジーにコミットしつづけると述べた。見つけた問題の修正をコントリビュートし、すばやく学んでいくことで、この2週間はスムーズに仕事ができているようだ。エンジニアリングチームはHBaseを使うのに慣れておらず、テストをスケールするといくつかの問題に遭遇した。
* 負荷のためのプロダクションクラスタのコンフィグレーション
* ハードウェア問題
* 安定性: 不安定なリージョンサーバー、不安定なマスター、トランザクションに縛られたリージョン
* HBaseのヘルスモニタリング: 動作中のサービスに影響が及ぶまで、問題が検出されないことが多かった。チームはモニタリングのためのコードをたくさん追加している。
* マルチステップMapReduceジョブの管理
全体としてWilliams氏は、プロジェクトは野心的だったが、素早くかつ成功裏に完了し、チームはHadoopとHBaseを使ってサーチエクスペリエンスを大幅に改善できたと考えている。
Ron Bodkin : Hadoop and NoSQLを使ってビッグデータソリューションを構築するThink Big Analyticsの創業者。