DMMゲームのログ解析~ハマりポイント~
ログ実装のハマりポイント
webが最新の技術に追い付いていない
ハマりポイントは結構沢山あったのですが、まず最新技術の情報にWebの情報が追い付いていないということが結構ありました。
検索結果の上位や、半年前の記事は正しくないことが往々にしてあります。
実際に「php hive」の検索結果1ページ目の10件中9件が古く使えない記事だったこともありました。新しめの技術を使う際には注意が必要です。
ストレージを消費する
ログの収集は開発環境でも結構ストレージを消費してしまいます。
空きスペースが不足すると、MapReduceのjobが作られなくなってしまい、動かなくなってしまうので注意が必要です。
Impalaの制限
ImpalaはHiveと互換性があるように作られているのですが、一部対応していないところがあります。
実際にハマったポイントとしては
・DATE型のパーティションが使えない
・FluentdのWebHDFSが出力したgzipファイルが読み込めない
Laravel5
今回はじめてLaravel5を利用したのですが、Laravel5のキャッシュと
ネームスペースのところで少し詰まりました。
ファイル名やクラス名をリネームしたらcomposer dump-autoloadをしないと読み込めなくなってしまい、ハマりました。
今後やりたいこと
Hive on Sparkの導入
こちらはclouderaが推奨しているようなので、興味を持っています。
HiveのMapReduceのエンジンをSparkに置き換えるというものです。
SparkのほうがImpalaよりもメモリ効率がいいので、期待しています。
Embulk
EmbulkというFluentdと同じようにログを収集するものがあるのですが、Embulkは既存のログをバッチで入力することができます。
これによって、過去にさかのぼってKPIを取得することができます。
まとめ
3回にわたってログフレームワークについて実装やParquet、ハマリポイントなどについてご紹介してきました。
今後よりパフォーマンスを向上させ、多様なゲームタイトルのログ集計に最適化させていきます。