大規模データへの取り組み
今回から、大規模データに対するリクルートテクノロジーズの取り組みを紹介します。私たちは、大規模データを分析するため、Hadoopなどのオープンソースを積極的に活用しています。Hadoopに関しては、2008年くらいからリサーチを行っており、今ではリクルートグループの13事業で利用されています。
Googleトレンドのグラフを見ていただくとわかるように、リクルートテクノロジーズは早い段階からHadoopに取り組んできました。
図1 Googleトレンドに見るHadoopの検索ボリューム
R&Dの取り組みを行う際に、図2のようなゲートレビューを設けています。各ゲートレビューを通過すると、運用フェーズになります。Hadoopは現在Dev-Stageの状態ですが、すでに13事業に対して100件超のデータ利活用を行っています。
図2 ゲートレビュー
Hadoopリサーチの4フェーズ
はじめに説明したように、リクルートテクノロジーズでは、 2008年からHadoopのリサーチをしてきました。リサーチ当初から現在まで、4段階のフェーズがありました。
第1フェーズ
最初の段階では、3~4台のサーバを利用して処理性能の検証や現在運用しているバッチ処理の移植性などの検証を行い、実際にHadoopがリクルートグループ内で活用できるかどうかの検討をしました。
第2、第3フェーズ
2010年ごろから、第2フェーズとなり、20台のサーバで、サービスのデータを利用した検証実験を行い、サービス運用で問題なく利用できるような実装ノウハウを習得し、第3フェーズでは、実際にサービス運用に耐えられるような設計を行い、様々なサービスに組込を開始していきました。
第4フェーズ
そして現在は第4フェーズですが、こちらのフェーズでは、処理性能を落とすことなくコストメリットをさらに追求するため、サーバセンターのラック代、電気代などの見直しを行い、サーバ性能の向上やミドルウェアの再検討を行いました。
これらの取り組みを行うことで、現在の第2世代と呼ばれている環境は、第1世代の処理性能を落とすことなく、半分のコストで利用できるようになりました。
図3 システム構成の歴史
第1世代と第2世代の大きな違いは、まずHadoopのディストリビューションをApache HadoopからMapRに切り替えたことです。MapRを利用することで、MasterNodeとSlaveNodeを意識することなく、サーバを有効に活用することが可能になりました。
図4 第1世代と第2世代のシステム構成概要
実サービスで使うHadoop
Hadoopを利用したサービス活用の事例を紹介します。
自動車事業の「クルマなびカウンター」で使うHadoop
図5 「 クルマなびカウンター」における活用事例
クルマなびカウンターは、お客様と対面形式でクルマ選びから契約までの一連の手続きを仲介してくれるサービスです。自動車の価格設定にHadoopを活用しています。
図6 価格算出に求められる条件
中古車マーケットは「正価」がない市場のため、価格算出を行うための条件が非常に複雑です。車種やエリアなどを限定して集計を行ったとしても、集計結果が出るまでに、数日かかりました。また、車種やエリアを限定していることから信頼度が低く、サービスで利用するのは難しい状態でした。
この集計システムをHadoopに置き換えることで、集計処理を1時間30分に短縮しました。そして、仮設→実行→検証のサイクルを繰り返し行うことで、サービスに実装することができました。
図7 価格算出システムをHadoopに置き換え
ブライダル事業 「ログ集計基盤」再構築で使うHadoop
ブライダル事業では、既存のログシステムに大きく4点の課題がありました。
効果集計データ及びロジックが分散かつ複雑
大量データ処理を高速に行う基盤が存在しない
分析は手作業中心。データ取得方法も異なる
データが分散。十分な分析ができない
これらの課題を克服するため、既存のログ集計システムをHadoopに置き換え、集計データやロジックの一元管理及び集計処理の高速化を行い、分析作業も効率的に行えるようにしました。
図8 基盤ログシステムの課題1
図9 基盤ログシステムの課題2
Hadoopに置き換えることにより、これまで14時間かかっていた集計処理が15分に短縮され、分析作業などの工数なども大幅に削減することができました。
図10 ログ集計基盤の再構築の効果
Hadoopエコシステムの利用
Hadoop周辺エコシステムとして、図10のエコシステムを活用しています。
Hive:SQLライクにMapReduceの操作が可能
mahout:機械学習・データマイニングのライブラリ
Sqoop:データベースとHDFSでデータのやり取りを行うライブラリ
Azkaban:Hadoopの実行Jobのスケジューリングライブラリ
図11 Hadoopエコシステム
リクルートテクノロジーズがGithub上に公開している、Webブラウザ上でHiveを操作することができる、webhive を利用することで、事業担当者がエンジニアに集計の依頼をすることなく、自ら実行できるような環境も構築しています。
図12 WebHiveの画面
こちら の資料でさらに詳しく紹介していますので、本記事とあわせて参考にしてください。
今回は、大規模データへの取り組みというテーマで、リクルートグループで利用しているHadoopのシステム構成やサービスの活用事例を紹介しました。次回は、1月21日に開催された日本最大級のHadoopイベント、Hadoop Conference Japan 2013 Winter についてお話させていただきます。