2012-01-20 8 views
0

私はセットアップした新しいHadoopクラスタのログシステムを実装するよう現在作業中です。過去にこれらの設定を見たことがあるのは、個々のファイルを約10倍のHDFSブロックサイズに分割してログを分割することでした。私はそれを使用する必要があるときにこの方法論に何の問題もありませんでしたが、ログを1つの長いファイルに保存したい同僚との議論の後、私が言及した10倍の方法論使われた。私が考えることができる理由は次のとおりです。HDFSで使用される異なるログファイルサイズの根拠となる理由

  1. mapreduceのジョブは、数日しか興味がない場合にはかなり高速に実行されます。
  2. ファイルを圧縮して、スペースを節約することができます。

他にもありますか?なぜ10x HDFSブロックサイズのレベルで人が1日にファイルを破るのか、実際には分かりませんでした。私は理論についての私の知識のために、ログがさまざまなサイズで保存されている理由の哲学についてもっと知ることは非常にクールだと考えています。

答えて

0

ファイルが大きければ大きいほどJobTrackerは仕事をスケジューリングします。超小型ファイルは多くのタスクを意味し、パフォーマンスが悪くなります。しかし、巨大なファイルを持っていても、データセットの一部だけを照会することはできません。 1日にどれくらいの量のデータを作成するか、ファイルの量を決める必要があります。 1日あたりのブロックサイズを10倍に増やすことができれば、1日あたりのファイル数を増やすことができます。そのようにすれば、5日分のクエリを簡単に行うことができます。それ以外の場合は、ファイルを連結するためのETLジョブを作成することを検討してください。

+0

これは意味があります。ですから、1日にファイルを分割する理由は全くありません。私が過去に行ったことを見てきたことは、ログファイルが720MBなどのサイズで切断されてしまうことです(1日に7GBのログがある場合など)。 720メガバイトの9ファイルと720メガバイトよりわずかに少ない1ファイルとして記録されます)。私は1日に分けて分けることは理解できますが、それよりも小さく分けることはできません。 – Eli

関連する問題