2016-05-03 13 views
2

私はいくつかのデータを読み込み、いくつかのメトリックを計算し、結果を保存する単純なSparkアプリケーションを持っています(入力と出力はCassandraテーブルです)。このコードは、一定の間隔(つまり1分ごと)で実行されます。スパークマスターの一時ディレクトリを作成する

私はCassandra/Spark(Spark 1.6.1)を持っていて、数分後にSparkクラスタのマスターノード上の一時ディレクトリがいっぱいになり、マスターはこれ以上ジョブを実行することを拒否します。私はspark-submitで仕事を提出しています。

私が紛失していることは何ですか?マスターノードが一時フォルダを削除するようにするにはどうすればよいですか?

答えて

0

Sparkはこのディレクトリをスクラッチスペースとして使用し、そこに一時マップ出力ファイルを出力します。これは変更することができます。あなたはspark.local.dirを見てください。

+0

私は労働者に問題はありません、それはディスクを満たすマスターノードです。私のアプリケーションのすべての繰り返しは、jar自体を含む新しい一時フォルダを作成しており、ジョブが終了すると削除されません。 – davideanastasia

+0

これは間違いなく、通常、スパーク送信がジョブを完了したときに一時ファイルをクリーンアップしたときです。どのバージョンのsparkを使用していますか? – tesnik03

0

アプリを送信するたびに、新しいアプリディレクトリ内のすべてのワーカーにjarがコピーされます。あなたの瓶はどれくらい大きいですか?あなたはdatastaxドライバジャーを含む脂肪質の瓶を作っていますか?その場合、私はあなたのアプリが数MBになると推測しています。それを毎分実行すると、ディスクが非常に速くいっぱいになります。

スパークアプリディレクトリのクリーニングを制御するための2つのパラメータがあります:制御 spark.worker.cleanup.interval火花が spark.worker.cleanupDataTtlをきれいにしようとしている頻度を制御どのくらいのアプリディレクトリはクリーニングされる前に残る必要があります。

両方のパラメータは秒単位です。

このヘルプが必要です。

関連する問題