私は、カフカのトピックから来るメッセージに応答するJavaベースのSpark Streamingアプリケーションを開発中です。各メッセージについて、アプリケーションは何らかの処理を行い、その結果を別のカフカのトピックに書き戻します。Sparkでキャッチされない例外処理
予期しないデータ関連の問題により、RDDで動作するコードが失敗し、例外がスローされることがあります。それが起こると、必要なアクションを実行してエラーのトピックにメッセージをドロップするジェネリックハンドラが必要になります。今のところ、これらの例外はスパーク自体によってスパークのログに書き込まれます。
RDDで動作するコードブロックごとにtry-catchブロックを書き込むのではなく、これを実行する最良の方法は何ですか?
トライキャッチでこれを実装することができると思います。 Sparkで今のところできなかったことがあれば、専門家が近い投票をする前に少なくともある程度の光を放つことができたら、私は感謝します。説明なしで近くの投票をしても、コミュニティには何の意味もありません。 –
これを行う汎用関数を書くことができます。スパーク例外(.mapや.filterのようなトランスフォーマーはアクションによって遅延実行される)をスローできる唯一のものなので、RDDアクションの周りにラップする必要があります。 (これはScalaであると仮定します)暗黙的に何かを試すこともできますし、エラーハンドリングを強化したRDDクラスを作成して、タイプシグネチャだけでエラー処理を暗黙に強制することもできます。私は近い投票をしませんでしたが、私は "ベスト"アプローチはアプリケーションのニーズに幾分主観的だと思います。 – Rich
ありがとう@リッチ。だから、基本的に言っていることは、今のところこれを処理するためにSparkに組み込みの方法がないということです。各アプリケーションはそれを処理する必要があります。あなたが答えとしてあなたのコメントを投稿できるなら、私はそれを受け入れるでしょう。 –