0

デフォルトでは、hadoop マップ タスクは、処理されたレコードを一時ディレクトリのファイルに書き込みます${mapred.output.dir}/_temporary/_${taskid}。これらのファイルは、FileCommiter が移動するまで${mapred.output.dir}(タスクが正常に終了した後)、ここに置かれます。マップ タスクで、上記の一時ディレクトリの下にファイルを作成する必要がある場合があります。そこでsetup()は、後で別の場所で使用されるプロセス関連のデータを書き込みます。ただし、hadoop タスクが強制終了されると、一時ディレクトリが HDFS から削除されます。

タスクが強制終了された後にこのディレクトリを削除しないように Hadoop に指示できるかどうか、またそれを達成する方法を知っている人はいますか? 構成できるプロパティを提供する必要があると思います。

よろしく

4

1 に答える 1

3

リリース間でいつでも場所と形式が変わる可能性がある一時ファイルに依存することはお勧めできません。

とにかく、 に設定mapreduce.task.files.preserve.failedtasksするtrueと、失敗したすべてのタスクmapreduce.task.files.preserve.filepatternの一時ファイルが保持され、タスクの ID の正規表現に設定すると、タスクの成功または失敗に関係なく、一致するパターンの一時ファイルが保持されます。

于 2011-11-30T16:40:19.300 に答える