2010-12-07 11 views
3

と外のHadoopへの「バケット」のデータを使用すると、キーに基づいて異なるディレクトリにデータを出力する実行のHadoopジョブを使用することが可能ですか?単一の実行

私の使用例は、サーバーアクセスログです。私はそれらを一緒に持っていると言いますが、いくつかの共通のURLパターンに基づいてそれらを分割したいと思います。例えば

、/ fooで始まり

  • 何が/ /年/月/日/時/ fooの/ファイルに/バーで始まる
  • 何かを行くべき/ /年に行くべき/月/日/時/バー/ファイル
  • /年/月/日/時に行くべき一致していない何か/その他/ファイル

二つの問題は、私の理解から(ここにありますMap Reduce):まず、データを繰り返し処理したい私は一致したいURLタイプごとに1つの "grep"ジョブを実行するのではなく、1回です。しかし、私はどのように出力を分割するだろうか?私は「バー」と、「foo」というと第一、第二の鍵とで休む場合は、「その他」それら全ては同じ減速に行きませんか? Hadoopにそれらを別のファイルに出力するように指示するにはどうすればよいですか?

第二の問題が関連している(多分同じ?)、私はアクセスログラインのタイムスタンプで出力を分割する必要があります。

私はこの問題を解決するためのコードを探していないんだけど、むしろ適切な用語や高レベルのソリューションをに見ていることに注意してください。私は複数の実行でそれをしなければならない場合は、それは大丈夫だが、私は(その時間のファイルを作成する)それぞれの可能な時間の一つの「グレップ」を実行することはできません、別の方法が存在しなければなりませんか?

答えて

1

あなたは、あなたが記述と同じようにデータを分割する必要があります。次に、複数の出力ファイルを用意する必要があります。こちら(Generating Multiple Output files with Hadoop 0.20+)を参照してください。

関連する問題