by shigemk2

当面は技術的なことしか書かない

LT1 GREE ADS データプラットフォーム

GREE開発本部 広告統括部
Python java(hadoop) PHPをよく書く

ネット広告の課金方法
ネット広告は期限付きのものが多い
Imp, click, conv(コンバージョン)のログを取る
GREEのトップ以外(インプレッション)
アドワーズ(クリック)
ニコニコ市場(コンバージョン)

広告ログシステムの全体像

ADサーバー→インプレッションログ
AD掲載ページ
Redirectサーバー→click log
リダイレクト
ランディングページ
コンバージョンサーバー→ conv log

fluentd と Hadoopを利用して、ログを集計してサーバーに送り、レポートを作る

Fluentd(リアルタイムのログ収集ツール JSON形式で収集する)
フォーマット化することでパーサーの負担も少ない

似たようなのに、ScribeやFlumeがある。
が、Docsとプラグインが豊富なので採用した

利点

  • インストールが簡単
  • プラグイン豊富
  • 受け手の冗長構成
  • ログの時間が区切れる
  • ロテートしても一回前までは拾える

欠点
プロセスが落ちると再送されない(アドホックなスクリプトで拾う必要がある)

Hadoop
大規模データを効率的に分散処理、管理するためのソフトウェア基盤

多数の汎用サーバで大規模データを処理できるが、
細かいデータは処理できない

Java MapReduce(実装に時間がかかるがハイパフォーマンス)
Hive SQLっぽくかける
Pig 独自言語
Streaming 好きな言語で書ける、おそい

いまのところMapReduceを使う。
Streamingで好きな言語でも書けるが、
処理の見積りが難しい
NameNodeが単一障害点

GREEの広告システムはFluentdやhadoopを使っている。