webdb2011 hadoop

38
Amebaにおける Hadoopおよび関連の活用 - WebDB Forum 2011 - 株式会社イエェ ア事業本部 Ameba Technology Laboratory 福田 一郎

Upload: ichiro-fukuda

Post on 30-Jun-2015

1.990 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Webdb2011 hadoop

AmebaサービスにおけるHadoopおよび関連プロダクトの活用

- WebDB Forum 2011 -

株式会社サイバーエージェントアメーバ事業本部Ameba Technology Laboratory福田 一郎

Page 2: Webdb2011 hadoop

2株式会社サイバーエージェント

名前 : 福田一郎 (フクダ イチロー)

所属 : 株式会社サイバーエージェントアメーバ事業本部

Ameba Technology Laboratory(新卒4年目)

• Ameba Pigg運用,開発

• ログ解析基盤 「Patriot」設計,開発,運用

• Ameba Technology Laboratory 研究室長

【Twitter】 @toutou 【はてなID】 id:ICHIRO

自己紹介

過 去

現 在

Page 3: Webdb2011 hadoop

アメーバサービス

Page 4: Webdb2011 hadoop

4株式会社サイバーエージェント

ブログ主な数値

【月間ページビュー】289.0億 PV

【Ameba会員数】1823万 ID

【アメーバピグユーザ数】935万 ID

(2011年9月末時点)

Page 5: Webdb2011 hadoop

5株式会社サイバーエージェント

アメーバピグ

Page 6: Webdb2011 hadoop

6株式会社サイバーエージェント

ピグライフ

Page 7: Webdb2011 hadoop

7株式会社サイバーエージェント

モバイルゲーム

9月末時点:18タイトル

Page 8: Webdb2011 hadoop

Ameba Technology Laboratory

Page 9: Webdb2011 hadoop

9株式会社サイバーエージェント

2011年4月 秋葉原に開設メンバー:11名(10月末時点)

@秋葉原ダイビル8階

概 略

Page 10: Webdb2011 hadoop

10株式会社サイバーエージェント

ログ解析基盤

インキュベーションラボラトリ 検索

2010年4月 2008年末 2010年2月

2011年4月

Ameba Technology Laboratory

大量データを集約的に扱う組織

設立の経緯

Page 11: Webdb2011 hadoop

11株式会社サイバーエージェント

推薦 フィルタリング

ログ解析データマイニング検索

ブログ

ニュース profile

大規模分散処理(ログ解析基盤)

なう

pigg ピグライフ

モバイルゲーム

メッセージ

ぐるっぽブログブログ アプリmkt

Ameba全般

領 域

Page 12: Webdb2011 hadoop

アメーバ と Hadoop

Page 13: Webdb2011 hadoop

13株式会社サイバーエージェント

アメーバピグ(HDFS)

アクセス解析(0.13.1 → 0.20.1)

pico(Amazon EMR,

Pig)

Hadoop使用実績

Page 14: Webdb2011 hadoop

ログ解析基盤 Patriot

Page 15: Webdb2011 hadoop

15株式会社サイバーエージェント

ログ解析基盤としての機能 解決策

ログファイルの集約 HDFS

ログデータの構造化 Hive独自DSL

ログの集計 Map/ReduceHive

集計サマリの表示 WebUI(通称:CIC)

アドホック集計,解析 HUE

Page 16: Webdb2011 hadoop

16株式会社サイバーエージェント

NameNode SecondaryNNNNバックアップ

JobTracker

23232323台台台台

DataNode,TaskTracker

システム構成

10101010台台台台

DataNode,TaskTracker

データセンタBデータセンタA

BatchMySQLレプリHinemosWeb,API,Ganglia,

Nagios,Hudson,Puppet

MySQL, HUE

Hadoopクラスタ

Amebaサービス

ログ転送MySQLレプリ

ログ整形HiveインポートHiveクエリ

集計データ

ブラウザで確認

Adhocクエリ(HUE経由)

CDH3u0

Page 17: Webdb2011 hadoop

Hive & HUE

Page 18: Webdb2011 hadoop

18株式会社サイバーエージェント

•Apacheプロジェクト

•Facebookが開発

•SQLライクな言語(HiveQL)

Hive

•Clouderaが開発

•Hadoop用Web UI

•Hiveクエリを投げられる

HUE

Page 19: Webdb2011 hadoop

19株式会社サイバーエージェント

Hive

Hive

Driver(Compiler, Optimizer, Executor)

Thrift ServerWeb

Interface

JDBC ODBC

Meta

store

CLI

HiveQL

Page 20: Webdb2011 hadoop

20株式会社サイバーエージェント

HiveQL

CREATE TABLE pigg_login( time STRING, ameba_id STRING, ip STRING)partitioned by(dt STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘¥t’STORED AS SEQUENCEFILE;

SELECT p.age, count(distinct l.ameba_id)

FROM pigg_login l

JOIN profile p on (l.ameba_id=p.ameba_id)

WHERE l.dt= ‘2011-11-04‘ GROUP BY p.age;

• SQLライクに記述できるので便利• Map/Reduceを直接書いた場合と同等の実行速度

Page 21: Webdb2011 hadoop

21株式会社サイバーエージェント

HUE

Page 22: Webdb2011 hadoop

22株式会社サイバーエージェント

Patriot WebUI

Page 23: Webdb2011 hadoop

Flume + HBaseを用いた準リアルタイム集計システム

Stinger

Page 24: Webdb2011 hadoop

24株式会社サイバーエージェント

• 集計をほぼリアルタイムに行いたい• サービス施策の効果をすぐに確認したい• ログ収集を効率化したい

Flume

• オープンソースログ(イベント)収集システム• Clouderaが開発

Agent

Agent

Agent

Agent

Collector

Collector

Master

HDFS

Page 25: Webdb2011 hadoop

25株式会社サイバーエージェント

Flume

• リアルタイムに近い形でHDFSにログ書き込みができる• Logical Node

• 「Source」と「Sink」の組み合わせ

Agent

TailSource

SinkLogFile

Processor

Source SinkMatcher

Collector

SourceHDFSSink HDFS

Page 26: Webdb2011 hadoop

26株式会社サイバーエージェント

HBase

• Google BigTableをモデルとした分散カラム指向データストア• HDFSにランダムRead/Write機能を追加• Facebook Messagesで大規模に利用されている

データモデル

• Table• RowKey• ColumnFamily• Column• Timestamp

SortedMap<RowKey, List<SortedMap<Column, List<Value, Timestamp>>>>>

• Table• RowKey順にソート

• Row• カラム順にソート

• Column• バージョン順にソート

Page 27: Webdb2011 hadoop

27株式会社サイバーエージェント

アーキテクチャ

Zookeeper

Client HMaster

RegionServer

RegionServer

RegionServer

Read/WriteRegion割り当てヘルスチェック

データの場所を登録

データの場所を問い合わせ

Page 28: Webdb2011 hadoop

28株式会社サイバーエージェント

特徴

• 書き込みスループットが高い• 大容量データを扱える• Hadoop Map/Reduceをサポート• 高可用性• 強い一貫性• カウンタ(incrementColumnValue,checkAndPut)

Page 29: Webdb2011 hadoop

29株式会社サイバーエージェント

Stinger システム構成

node + soket.io HBaseクラスタ

pollingpush

flume agent

log

flume collector

increment

flume master

websocket

• リアルタイム集計のデモアプリケーション• ブログのIDごとのリアルタイムPV集計• 閲覧者属性ごとのPV集計

Page 30: Webdb2011 hadoop

HBaseを用いたグラフ構造を扱うデータストア

Hornet

Page 31: Webdb2011 hadoop

31株式会社サイバーエージェント

これまで

• グラフ構造は基本的にMySQLを使って管理していた• マスタの分散が難しい• シャーディング管理が煩雑

※ グラフ構造データ• ブログチェックリスト• なうのフォロー、フォロワー• ピグとも• etc・・・

HBaseを使ってみるのはどうだろうか?(検証中)

Page 32: Webdb2011 hadoop

32株式会社サイバーエージェント

目的

• 大規模なグラフデータに対して高速に追加・更新処理ができる• シンプルなクエリを高速に(隣接ノードが取れれば良い)• オンライン処理

データモデル

• プロパティグラフ

NameNameNameName FukudaFukudaFukudaFukuda

Age 28

NameNameNameName SuzukiSuzukiSuzukiSuzuki

Age 282

NameNameNameName YasudaYasudaYasudaYasuda

Age 26

datedatedatedate 2011/01/022011/01/022011/01/022011/01/02

Follow

Friend

Friend

Page 33: Webdb2011 hadoop

33株式会社サイバーエージェント

アーキテクチャ

HDFS

Client

Gateway

HBase

Gateway Gateway

Hornet

RPC

Page 34: Webdb2011 hadoop

34株式会社サイバーエージェント

RowKeyの設計

Row Key Column Key Value

“1,FOLLOW,OUTGOING” g:2 date=2011/1/12

g:3 date=2011/4/20

“2,FOLLOW,INCOMING” g:1 date=2011/1/12

“2,FOLLOW,OUTGOING” g:3 date=2011/2/9

“3,FOLLOW,INCOMING” g:1 date=2011/4/20

g:2 date=2011/2/9

1 2

datedatedatedate 2011/01/122011/01/122011/01/122011/01/12

Follow

Follow Follow

Page 35: Webdb2011 hadoop

まとめ

Page 36: Webdb2011 hadoop

36株式会社サイバーエージェント

• 定型集計,解析• 非定型集計,解析• リアルタイム集計,解析• オンライン処理向けデータストア

Hadoop関連プロダクト適用範囲の拡大

• Hive,HBase,Zookeeper• Flume

• Flume NG:大きめの改修か?• Hadoop0.23

• Map/Reduce以外のアルゴリズムサポート(BSP,MPIなど?)• NameNode,JobTrackerの大幅な変更

• Hadoopディストリビューション:CDHなど

Hadoop関連プロダクトの充実

Page 37: Webdb2011 hadoop

37株式会社サイバーエージェント

• ご質問などあれば是非!

企業ブース

• ご相談下さい• [email protected][email protected]

研究向けデータのご提供

• 本日14時~• 推薦まわりをメインテーマに

技術報告セッション

Page 38: Webdb2011 hadoop

ありがとうございました