webdb2011 hadoop
TRANSCRIPT
AmebaサービスにおけるHadoopおよび関連プロダクトの活用
- WebDB Forum 2011 -
株式会社サイバーエージェントアメーバ事業本部Ameba Technology Laboratory福田 一郎
2株式会社サイバーエージェント
名前 : 福田一郎 (フクダ イチロー)
所属 : 株式会社サイバーエージェントアメーバ事業本部
Ameba Technology Laboratory(新卒4年目)
• Ameba Pigg運用,開発
• ログ解析基盤 「Patriot」設計,開発,運用
• Ameba Technology Laboratory 研究室長
【Twitter】 @toutou 【はてなID】 id:ICHIRO
自己紹介
過 去
現 在
アメーバサービス
4株式会社サイバーエージェント
ブログ主な数値
【月間ページビュー】289.0億 PV
【Ameba会員数】1823万 ID
【アメーバピグユーザ数】935万 ID
(2011年9月末時点)
5株式会社サイバーエージェント
アメーバピグ
6株式会社サイバーエージェント
ピグライフ
7株式会社サイバーエージェント
モバイルゲーム
9月末時点:18タイトル
Ameba Technology Laboratory
9株式会社サイバーエージェント
2011年4月 秋葉原に開設メンバー:11名(10月末時点)
@秋葉原ダイビル8階
概 略
10株式会社サイバーエージェント
ログ解析基盤
インキュベーションラボラトリ 検索
2010年4月 2008年末 2010年2月
2011年4月
Ameba Technology Laboratory
大量データを集約的に扱う組織
設立の経緯
11株式会社サイバーエージェント
推薦 フィルタリング
ログ解析データマイニング検索
ブログ
ニュース profile
大規模分散処理(ログ解析基盤)
なう
pigg ピグライフ
モバイルゲーム
メッセージ
ぐるっぽブログブログ アプリmkt
Ameba全般
領 域
アメーバ と Hadoop
13株式会社サイバーエージェント
アメーバピグ(HDFS)
アクセス解析(0.13.1 → 0.20.1)
pico(Amazon EMR,
Pig)
Hadoop使用実績
ログ解析基盤 Patriot
15株式会社サイバーエージェント
ログ解析基盤としての機能 解決策
ログファイルの集約 HDFS
ログデータの構造化 Hive独自DSL
ログの集計 Map/ReduceHive
集計サマリの表示 WebUI(通称:CIC)
アドホック集計,解析 HUE
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
Hive & HUE
18株式会社サイバーエージェント
•Apacheプロジェクト
•Facebookが開発
•SQLライクな言語(HiveQL)
Hive
•Clouderaが開発
•Hadoop用Web UI
•Hiveクエリを投げられる
HUE
19株式会社サイバーエージェント
Hive
Hive
Driver(Compiler, Optimizer, Executor)
Thrift ServerWeb
Interface
JDBC ODBC
Meta
store
CLI
HiveQL
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を直接書いた場合と同等の実行速度
21株式会社サイバーエージェント
HUE
22株式会社サイバーエージェント
Patriot WebUI
Flume + HBaseを用いた準リアルタイム集計システム
Stinger
24株式会社サイバーエージェント
• 集計をほぼリアルタイムに行いたい• サービス施策の効果をすぐに確認したい• ログ収集を効率化したい
Flume
• オープンソースログ(イベント)収集システム• Clouderaが開発
Agent
Agent
Agent
Agent
Collector
Collector
Master
HDFS
25株式会社サイバーエージェント
Flume
• リアルタイムに近い形でHDFSにログ書き込みができる• Logical Node
• 「Source」と「Sink」の組み合わせ
Agent
TailSource
SinkLogFile
Processor
Source SinkMatcher
Collector
SourceHDFSSink HDFS
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• バージョン順にソート
27株式会社サイバーエージェント
アーキテクチャ
Zookeeper
Client HMaster
RegionServer
RegionServer
RegionServer
Read/WriteRegion割り当てヘルスチェック
データの場所を登録
データの場所を問い合わせ
28株式会社サイバーエージェント
特徴
• 書き込みスループットが高い• 大容量データを扱える• Hadoop Map/Reduceをサポート• 高可用性• 強い一貫性• カウンタ(incrementColumnValue,checkAndPut)
29株式会社サイバーエージェント
Stinger システム構成
node + soket.io HBaseクラスタ
pollingpush
flume agent
log
flume collector
increment
flume master
websocket
• リアルタイム集計のデモアプリケーション• ブログのIDごとのリアルタイムPV集計• 閲覧者属性ごとのPV集計
HBaseを用いたグラフ構造を扱うデータストア
Hornet
31株式会社サイバーエージェント
これまで
• グラフ構造は基本的にMySQLを使って管理していた• マスタの分散が難しい• シャーディング管理が煩雑
※ グラフ構造データ• ブログチェックリスト• なうのフォロー、フォロワー• ピグとも• etc・・・
HBaseを使ってみるのはどうだろうか?(検証中)
32株式会社サイバーエージェント
目的
• 大規模なグラフデータに対して高速に追加・更新処理ができる• シンプルなクエリを高速に(隣接ノードが取れれば良い)• オンライン処理
データモデル
• プロパティグラフ
NameNameNameName FukudaFukudaFukudaFukuda
Age 28
1
NameNameNameName SuzukiSuzukiSuzukiSuzuki
Age 282
NameNameNameName YasudaYasudaYasudaYasuda
Age 26
3
datedatedatedate 2011/01/022011/01/022011/01/022011/01/02
Follow
Friend
Friend
33株式会社サイバーエージェント
アーキテクチャ
HDFS
Client
Gateway
HBase
Gateway Gateway
Hornet
RPC
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
3
datedatedatedate 2011/01/122011/01/122011/01/122011/01/12
Follow
Follow Follow
まとめ
36株式会社サイバーエージェント
• 定型集計,解析• 非定型集計,解析• リアルタイム集計,解析• オンライン処理向けデータストア
Hadoop関連プロダクト適用範囲の拡大
• Hive,HBase,Zookeeper• Flume
• Flume NG:大きめの改修か?• Hadoop0.23
• Map/Reduce以外のアルゴリズムサポート(BSP,MPIなど?)• NameNode,JobTrackerの大幅な変更
• Hadoopディストリビューション:CDHなど
Hadoop関連プロダクトの充実
37株式会社サイバーエージェント
• ご質問などあれば是非!
企業ブース
• ご相談下さい• [email protected]• [email protected]
研究向けデータのご提供
• 本日14時~• 推薦まわりをメインテーマに
技術報告セッション
ありがとうございました