サイバーエージェントを支える技術者たち

第31回 秋葉原に集結した技術者集団Ameba Technology Laboratoryの役割を探る[後編]

この記事を読むのに必要な時間:およそ 3.5 分

統合ログ解析基盤と検索システム,そして機械学習の開発と運用を目的に,サイバーエージェントが秋葉原ダイビル内に開設したのが「Ameba Technology Laboratory」⁠以下,ラボ)です。第28回の前編に引き続き,ここで行われている業務内容や今後の展開について,ラボのメンバーに話を伺っていきます。

Ameba Technology Laboratoryのオフィスのようす

Ameba Technology Laboratoryのオフィスのようす

即座にGOサインが出た統合ログ解析基盤の開発

テキスト検索エンジンである「Lucene」⁠そしてWeb検索エンジンの「Nutch」の開発において中心的な役割を果たしたDoug Cutting氏は,2006年に新たなプロジェクトを立ち上げます。それが現在,大規模データ分散処理技術として注目を集めている「Hadoop」でした。

このHadoopの大きな可能性に魅せられ,多くの企業がHadoopを自社のデータ解析に活用しはじめる中,2009年10月にはニューヨークで「Hadoop World」が,そしてその1ヵ月後には東京でも「Hadoop Conference 2009 Tokyo」と題したイベントが開かれます。ラボ研究室長の福田一郎氏はこのイベントに参加して,Clouderaが提供するHadoopディストリビューション「CDH」Cloudera's Distribution including Apache Hadoop「Hive」を知ることになります。

その後,すぐに伊豆高原において開発合宿を実施し,サイバーエージェント内にも統合ログ解析基盤が必要だという結論に至りました。開発合宿から戻ってきた福田氏らは,サイバーエージェント 技術部門執行役員である長瀬慶重氏にその旨を相談したところ,即座にGOサインが出ました。こうしてサイバーエージェントにおける統合ログ解析基盤の開発がスタートしたのです。

そして翌2010年の7月には「Patriot」と名付けられた独自の統合ログ解析基盤第1弾をリリース,11月にはWebユーザインタフェースなどをリニューアルしたPatriotの第2弾となる「PAC2」が,そして,その1年後となる2011年11月からは,第3弾である「PAC3」に順次切り替えられています。

こうして統合ログ解析基盤の整備が進められている中,2011年4月1日に秋葉原ダイビル内に開設されたのが「Ameba Technology Laboratory」でした。このラボでは,統合ログ解析基盤と検索システム,機械学習についての開発と運用が行われています。大規模データを扱うのであれば一緒に開発したほうが効率的という判断から,それらをまとめる部署としてラボを立ち上げたと福田氏は説明します。

このように,基盤の開発からバージョンアップ,そして部署の立ち上げまで迅速に行われたことからも,同社においてログ解析がいかに重視されているかがわかるでしょう。

40台以上のサーバで構成されるサイバーエージェントのHadoop環境

Patriotは現在,マスタ系サーバとして3台,Worker系サーバとして2つのデータセンターにまたがって約40台のサーバが稼働しているとのこと。マスタ系はHadoopのNameNodeとJobTrackerのほか,設定情報の集中管理を行うZooKeeper,そしてHBaseのマスタノードであるHBaseMasterが動作しています。

一方,Worker系サーバで動いているのは,HadoopのDataNodeとTaskTracker,そしてHBaseのHBaseRegionServerです。さらに集計結果を表示するためのアプリケーションサーバ,バッチ処理やジョブ管理を行うためのサーバ,システム監視サーバ,アメーバなうなどとのサービス連携を行うためのAPIサーバが運用されています。Hadoop環境の構築に使われているのは,ClouderaがリリースしているHadoopディストリビューションであるCDH3u0CDH3 Update 0です。

それでは,実際の集計はどのようなフローで行われているのでしょうか。まずアメーバピグや各種ゲームなどからログが転送され,ログクリーニングやHiveへのログデータインポートが行われ,さらに集計用のジョブがキックされます。これによりHadoop環境で集計作業を実施し,その結果をHBaseに出力します。こうして作成した集計データを独自のWebアプリケーションやHUE環境※1として動作しているサーバが取り込み,サイバーエージェント社内のエンドユーザが閲覧する,という流れになっています図1)⁠

図1 Patriotの集計フロー

図1 Patriotの集計フロー

※1)
ClouderaオリジナルのWebUI。

統合ログ解析基盤次期バージョンへの取り組み

Patriotについては,次期バージョンについても検討が進められています。次期バージョンでは,⁠プロデューサーやマーケッター,アナリストによる解析の追加,ダッシュボードなどユーザがより効率的にデータを扱うための機能の強化」⁠より深い統計解析の組み込み」⁠解析のリアルタイム化」⁠MapReduce 2.0への対応」といったことを中心に検討が行われています。

現在のPatriotが抱える課題について,鈴木俊裕氏は次のように説明します。

「データをHadoopに取り込むための処理など,Hadoopでの処理がボトルネックになって解析が遅延することがあります。その他,実際のデータの格納形式を意識しなければHadoopでも効率的に処理できないため,プロデューサーなど非エンジニア系の職種のユーザがうまくデータを扱えていないことも課題であると認識しています。また,現状ではデータ解析の追加を依頼ベースで行っていますが,依頼が殺到すると解析スピードを保証できません。この点も次期バージョンで対策を講じたいですね」⁠鈴木氏)

その解決策としては,Scribe,あるいはFlumeを利用したリアルタイムなログ収集とログ形式の統一,エンジニア以外のユーザでも大規模データを扱えるしくみの開発が検討されています。

なお,ScribeはFacebookが開発したログデータ収集のためのソフトウェアであり,現在オープンソースとして公開されています。特徴は多数のサーバのログデータをリアルタイムに収集できること。一方のFlumeはClouderaによって開発されたもので,Scribeと同じく大量のログデータを集約することを目的としています。このいずれかを利用し,ログ収集にまつわる課題を解決することが模索されています。

エンジニアではないユーザが大規模データを効率的に扱うためのしくみをどのように実現するのかも興味深いところでしょう。Hadoopによるデータ解析では,基本的にMapReduceによる処理をJavaで記述する必要があるため,そのままでは開発言語を普段利用していないユーザには使えません。Hiveを利用することにより,HiveQLというSQLライクな言語でHadoop環境に蓄積されたデータを解析することも可能になりますが,やはり非エンジニア職種のユーザが利用するのは困難です。こうした課題をどのように解決するのか,今後の取り組みが注目されます。

著者プロフィール

川添貴生(かわぞえたかお)

株式会社インサイトイメージ代表取締役。企業サイトの構築及び運用支援のほか、エンタープライズ領域を中心に執筆活動を展開している。

メール:mail@insightimage.jp

コメント

コメントの記入