0

ここで私の単純なばかげた問題の解決策を探しています。たとえば、レコードが「\n」で区切られた 10 GB の巨大なテキスト ファイルがあり、そのファイルを Hadoop フレームワークへの入力として提供するとします。出力は、入力ファイルと同じレコードの順序を維持するが、すべてのレコードの前にシリアル番号が付いたファイルである必要があります。

たとえば、

入力テキストファイルがある場合、

this is line one
this is line two
this is line three
this is line four
-----------------
-----------------

出力ファイルは、

1 this is line one
2 this is line two
3 this is line three
4 this is line four
------------------
-----------------

編集: 10 GB のファイルの代わりに 10 TB のファイルがあるとします。Hadoop の方法を使用してファイルを処理する代わりに、より高速に処理するための他の最善の方法は何でしょうか?

また、単一のレデューサーではなく、複数のレデューサーを使用したいと考えています。

4

2 に答える 2

2

私はpapに同意します。ここでは、Hadoopは必要ありません。コマンドnlを確認すると、ファイルの各行の前に行番号が追加されます。出力を新しいファイルに保存するだけです。

$ cat testFile
line1
line2
line3

$ nl testFile
   1   line1
   2   line2
   3   line3
于 2012-05-30T08:38:16.360 に答える
0

ファイルを開き、行ごとに読み取り、各行を新しいファイルに保存するだけの場合と比較して、このような些細な操作でHadoopから何かメリットがあるかどうかはわかりません(シーケンス/シリアル番号を前に付けて)。

于 2012-05-30T08:24:22.493 に答える