HDFS block sizeをどのように設定すべきか
HDFS block sizeを決めるには以下のようなことを考える必要がある。
- MapReduceへの入力となる総ファイル数は?
- ファイルごとの平均サイズがどのくらいで、ファイルごとにサイズのバラつきがどうなってる?
- ファイル形式と圧縮オプションがどうなってんの?
- 各ノードのCPUコア数および mapper のスロット数は?
これらを複合的に考える必要があり、再設計する必要に迫られたので指針を以下のようにするとよい、とまとめてみた。
……というエントリを書こうと思ったが、YARNの場合は mapper, reducer の数を明示的にがっつり指定するという感じになっておらず、全てはメモリまかせになっていてよくわからなくなってた。
もうなんだ、なんか適当に256MBとかにしとけばいいじゃない。しるか。