本番サービス用Hadoopクラスタと統計用Hadoopクラスタの違い

僕が日頃触っているのは統計用Hadoopクラスタで本番サービス用Hadoopクラスタのことはそんなに分からないんだけど見た範囲で言うと違いがいくつかある。

本番サービス用Hadoopクラスタっていうのは例えばTwitterのようなつぶやきサービスだったらつぶやきを保存するストレージとしてHadoop、というかHBaseだよね、を使っている場合なんかを意味する。Hadoopクラスタがdownしたらサービスが継続できないようなケースを言う。

統計用Hadoopクラスタはサービスの統計値を計算するためのものでHiveで集計するのがメイン。サービスのログを集めてPVを集計するとかね。統計用Hadoopクラスタがdownしても本番サービスには影響が無い。

本番サービスと統計ではユースケースが違うのでHadoopの設定ファイルなんかでもお互いに参考に出来ない事が多い。

本番サービスの方は普通はレイテンシを抑えることが求められる。ユーザがなんかつぶやいたら反応が全然返ってこないというのでは困るからね。なんか障害が起きているならそれはそれで早くレスポンス返したい。なのでタイムアウト関連の設定は短めにすることがあるだろう。でも統計の方はそういうのが無くてバッチ処理がメインなので別にタイムアウトを短くする必要は無い。またリトライなんかもバッチ処理だったらリトライ間隔のばして多めにリトライしても問題無いだろうけどリアルタイム処理だとそれは厳しい。

本番サービス用HadoopクラスタMapReduceを実行することは少ないだろうけど、統計だとHiveによるMapReduceがメイン。

データ容量も本番サービスだと少なめにしてHDD使用率も低く抑えてdecommissionも早く終わる方がよいけど、統計だとデータはひたする溜めるよね。

というようにいろいろと違いがあるのでその辺は意識したほうがいいかも。