多数のテキスト ファイルを含む HDFS に、多数の tar.gz ファイルを含む毎日のフォルダーがあります。
これらの tar.gz の多くが破損していることが判明しており、これらのファイルを処理する際に「ストリームの予期しない終了」で hive/mapreduce ジョブがクラッシュします。
それらのいくつかを特定し、tar -zxvf でテストしました。それらは実際にエラーで終了しますが、これが発生する前にかなりの数のファイルを抽出します。
tar/gz ファイルが破損したときに、hive/mapreduce ジョブを停止して単純にクラッシュさせる方法はありますか?
mapred.skip.attempts.to.start.skipping、
mapred.skip.map.max.skip.records、
mapred.skip.mode.enabled、
mapred.map.maxなどのいくつかのエラー スキップと耐障害性パラメーターをテストしました。 .attempts、
mapred.max.map.failures.percent 、mapreduce.map.failures.maxpercent
。
少数のケースでは、クラッシュすることなく完全なフォルダーを処理するのに役立ちましたが、ほとんどの場合、これによりジョブがハングし、まったく終了しませんでした。
(クリーンな gzip ファイルを取得するために) 後で再圧縮してから hdfs に再度アップロードするためだけに、hadoop の外部ですべてのファイルを解凍するのは、非常に面倒なプロセスです (余分な手順と、生成される大量のデータのため)。
誰かが見つけた、よりクリーンでエレガントなソリューションはありますか?
助けてくれてありがとう。