私がデータ処理プログラムを書いている状況はたくさんありますが、新しいバグは大規模なデータセットでしか発見されません。たとえば、1 億レコードに 1 レコードでクラッシュするスクリプトを考えてみましょう (予期しない入力などにより)。データの小さなサンプルで開発している場合、そのバグは見られません。私にできることは、Hadoop のエラー ログをじっと見つめ、スクリプトを微調整してから、ジョブ全体を再実行することだけです。これは、計算時間と開発者時間の両方で恐ろしく非効率的です。
私が望むのは、スクリプトがクラッシュしたときに処理していたデータのセグメントをダウンロードする方法です。
これを Hadoop から簡単に取り出す方法はありますか? (理想的には、Hadoop ストリーミング?)
数年前、Hadoop 自体が作成する一時ディレクトリを掘り下げるという恐ろしいトリックを学びました...これは良い解決策とは思えません。