2017-12-06 22 views
1

(textFileStreamを使用して)ディレクトリからファイルを取得するSparkストリーミングジョブを実行しています。 ジョブがダウンしてもファイルはまだディレクトリに追加されている場合があります。 ジョブが再び起動すると、それらのファイルは(ジョブが実行されている間に新しいものではなく、変更されていないので)ピックアップされていませんが、処理されたいものです。Sparkでは古いデータの処理方法と処理済みデータの削除方法

1)解決策はありますか?どのファイルが処理されたかを追跡する方法はありますか?古いファイルを取り込むことを強制することはできますか?

2)処理されたファイルを削除する方法はありますか?

+0

これは、この2年前のスパークユーザーメーリングリストで尋ねられたまったく同じ質問(文字通り単語単位)です。そのメールチェーンの返信は疑問に答えますか? https://mail-archives.apache.org/mod_mbox/spark-user/201502.mbox/%[email protected].com%3E –

+0

チェックポイント機能はありますか? – user179156

答えて

1

以下の記事は、あなたの質問すべてをカバーしています。

https://halfvim.github.io/2016/06/28/FileInputDStream-in-Spark-Streaming/

1)そのための解決策はありますか?どのファイルが処理されたかを追跡する方法はありますか?古いファイルを取り込むことを強制することはできますか?

ストリームリーダーは、ジョブ/アプリケーションの起動時にシステムクロックを使用してバッチウィンドウを開始します。明らかに、以前に作成されたすべてのファイルは無視されます。 チェックポイントを有効にしてみてください。

2)処理されたファイルを削除する方法はありますか?

ファイルを削除する必要はありません。チェックポインティングが機能する場合、処理されていないファイルはSparkによって識別されます。なんらかの理由でファイルを削除する場合は、カスタム入力フォーマットとリーダー(記事を参照してください)を実装してファイル名を取得し、この情報を適切に使用してください。しかし、私はこのアプローチをお勧めしません。

関連する問題