AmebaサービスにおけるHadoop活用事例 株式会社サイバーエージェント アメーバ事業本部 Ameba Technology Laboratory 福田 一郎
AmebaサービスにおけるHadoop活用事例
株式会社サイバーエージェントアメーバ事業本部Ameba Technology Laboratory福田 一郎
2
自己紹介
【名前】 福田一郎(@toutou)
【出身】 鳥取県米子市
【経歴】
• 2008年4月 サイバーエージェント入社
• Amebaサービスの運用
• Ameba Piggの運用,開発
• 2010年3月~ 統合ログ解析基盤Patriot開発
• 2011年4月~ Ameba Technology Laboratory開設@秋葉原• Hadoop,HBase,SolrなどのOSS
• 大規模データ分散処理技術を中心に
株式会社サイバーエージェント
Ameba事業
4
会社概要
株式会社サイバーエージェント
株式会社サイバーエージェント
東京都渋谷区道玄坂一丁目12番1号
代表取締役社長 藤田 晋
1998年3月18日
社 名
本 社
代表者
設 立
加盟団体 新経済連盟一般社団法人ソーシャルゲーム協会一般社団法人モバイルコンテンツ審査・運用監視機構安心ネットづくり促進協議会モバイル・コンテンツ・フォーラム社団法人日本広告業協会インターネット広告推進協議会社団法人日本広告審査機構
5
事業内容
株式会社サイバーエージェント
Ameba事業 ソーシャルゲーム事業
インターネット広告事業
6
Ameba事業 ー PC向けサービス
株式会社サイバーエージェント
7
Ameba事業 ー スマートフォンプラットフォーム
株式会社サイバーエージェント
8
Ameba事業 ー ソーシャルゲーム
株式会社サイバーエージェント
9
Ameba事業 ー コミュニティサービス
株式会社サイバーエージェント
Ameba Technology Laboratory
11
【概略】
Ameba Technology Laboratory
• 2011年4月 秋葉原ダイビル8階に開設
• メンバー:約20名
株式会社サイバーエージェント
12
【領域】
株式会社サイバーエージェント
大規模データ処理
基盤(Hadoop,HBase)
検索(Solr)
データマイニングレコメンド フィルタリング
• 各サービスのログ集約• 準リアルタイムログ収集• 各種指標の集計,結果表示• グラフ構造向けDB• 汎用JSONデータストア
ブログコミュニティ
アプリ
コメントメッセージ掲示板
ブログプロフィールAmebaなうニュース
ゲームコミュニティ
ブログ
Hadoop導入事例
14
Ameba × Hadoop
• 2007年~ アメブロ アクセス解析• Hadoop0.13.1
• MapReduce,HDFS
• 2009年~ Ameba Pigg• ログ集約サーバ(HDFS)
• 2010年~ Patriot• Amebaサービス全体のログ集約,解析基盤
• CDH3系
• Hive
• 2012年~ Hornet• オンライン用途でのグラフデータ構造を扱うデータストア
• CDH4系
• HBase
株式会社サイバーエージェント
Hadoop Conference Japanがキッカケ
15
Patriotで扱うデータ
株式会社サイバーエージェント
属性データ 行動ログアクセス
ロググラフデータ
会員IDプロフィール
各種投稿ゲーム利用アイテム購入
課金
PVセッションUserAgent
コミュニティ系サービスのつながり情報
利用しているアプリ情報
HDFSに集約
Hiveを用いて集計
主にレコメンド向け
16株式会社サイバーエージェント
システム構成Amebaサービス
ログ転送(SCP)MySQLレプリ
【Logサーバ】ログの一時集約
Hadoopクラスタ
ログ整形Hiveインポート
集計サマリをPut(HBase)
レコメンドデータ作成サーバ
アドホックHiveクエリ(自作WebUI)
サマリView(自作WebUI)
【Batchサーバ】Jobスケジューラ
HiveJobをキック ログのリアルタイム転送(Flume)
17
Patriot利用実態
株式会社サイバーエージェント
ゲームコンサル データマイニングエンジニア
ゲーム/コミュニティプロデューサ
WebView アドホッククエリ
課金統括部門マーケティング部門
サービス担当エンジニア
システム連携 Daily定型ジョブ(Hive)だけで7000以上
18
PAC3
• 自作ジョブスケジューラ(Ruby)
• Hiveクエリ単位で依存関係を張ることが可能
• 設定はRuby DSLで記述
• 結果を異なるデータストアに格納する記述が可能• Hive → MySQL
• Hive → HBase
• Hive → Hive
株式会社サイバーエージェント
19
Hadoopクラスタの統合
株式会社サイバーエージェント
Ameba Patriot(CDH3u0)
SPプラットフォームPatriot
(CDH3u3)
統合Patriot(CDH4.2)
ノード:約60台Dell:R410
ノード:約50台Dell:R410
ノード:30台~
Dell:R720xd(2U)【HDD】3TB×12(SATA)300GB×2(SAS/OS)【RAM】64GB【CPU】8コア(HT)×2
Hadoopに向いたサーバの登場
ネットワークの統合
20
HBaseの利用
• PatriotのサマリDB
• Hornet• グラフ構造を扱うデータストア
• 分散Lock機能(Zookeeperを利用)
• JSON Persister• JavaオブジェクトをJSONデータとして永続化するフレームワーク
• Javaオブジェクトを直接save,loadするシンプルなAPI
• Indexも指定可能
• データストア層をHBase ⇔ MySQLと切り替え可能
株式会社サイバーエージェント
低レイテンシでのRead/WriteバックエンドにHDFS
列指向分散データストア
21
Hornet(概要)
株式会社サイバーエージェント
目的
• 大規模なグラフデータに対して高速に追加・更新処理ができる• シンプルなクエリを高速に(隣接ノードが取れれば良い)• オンライン処理
データモデル
• プロパティグラフ
Name Fukuda
Age 28
1
Name Suzuki
Age 282
Name Yasuda
Age 26
3
date 2012/01/02
Follow
Friend
Friend
22
その他のHadoop関連プロダクトの利用
• Flume• ログをTailしてHDFSやHBaseに流す
• GrowthForecastでリアルタイムにアクセス数をグラフ化
• ラボ内にコミッター
• Impala• Hiveより高速にクエリ実行が可能
• 検証しているところ
• データマイニングエンジニアが探索的なクエリを実行する(検討中)
• Blackhawk• HBaseをSQLライクな言語で扱うためのフレームワーク
• 自作
株式会社サイバーエージェント
23
Hadoopの採用理由
• Webサービスが生み出すデータは膨大
• ゲーム/コミュニティサービスが次々にリリース• どれだけデータ量が増えるか予想することが難しい
• 利用ユーザ数も増加する(サービスが増えればプロデューサも増える)
• データが増えたらノードを増やせば良い
• エコシステム(関連プロダクト)の充実• HBase,Hive,Zookeeperなど
株式会社サイバーエージェント
24
CDHの採用理由
• 必要となる各種モジュールがパッケージングされている• Hadoop関連プロダクトはVersionを合わせるのが至難の業
• インストールが簡単
• NameNode HA• CDH4系から
• Apacheにも取り込まれるがCDHの方が早くリリースされる
• JobTracker HA• CDH4.2から
• Impalaなど新しいプロダクト• 必要とされるものが積極的に作られ,取り込まれる
株式会社サイバーエージェント
25
Cloudera Enterpriseの採用理由• 2012年下旬から採用している
• CDHに関するサポートを得られる• Hadoop関連プロダクトは多岐にわたる
• Hadoop,HBase,Zookeeper,Hive,Pig ...
• 全てのプロダクトに精通することは不可能に近い
• OSSなのでコミュニティで訊けば良いが...
• Cloudera Manager• Hadoop環境構築がより簡単に
• 運用も楽に
• システム監視もできる
• エンタープライズ向け機能の充実• HA,BDR(バックアップ・ディザスタリカバリ回り),
Navigator(データ監査とアクセス制御)
• BtoCでもオンライン用途でHBaseを使うようになり必要性を感じた
株式会社サイバーエージェント
26
まとめ/将来展望
株式会社サイバーエージェント
定型処理
Map/ReduceHive
非定型処理
WebUIからのHiveクエリ実行
Rなどを用いた高度な分析
オンライン処理
HBaseFlumeImpala
高度な処理
オンラインで高度な分析(ex.Jubatus)
より低レイテンシでのクエリ実行が可能
一連の流れをHadoop関連プロダクトで解決できている
適用範囲拡大が期待される
Hadoop関連プロダクトとして登場 or 連携
の可能性
27
Hadoop採用を検討中の皆様へ
• Hadoopはかなり安定している
• OSS(Apacheライセンス)である
• データ増加への恐怖がなくなる
• 先進技術はHadoopのそばで生まれている
• Hadoopのサポートをする企業の増加
• まずはデータを集められる環境整備
• ニーズは現場からどんどん出てくる• まずやってみる → 共通化など効率を考える
• HBaseも用途によっては非常に有用
株式会社サイバーエージェント
ありがとうございました