1

Spark で非決定論的なコードを実行すると、ノードの障害からの回復が必要な場合に問題が発生する可能性があります。これは、新しい出力が古い出力とまったく同じではない可能性があるためです。私の解釈では、この場合、ジョブ全体を再実行する必要があるかもしれません。そうしないと、出力データがそれ自体と矛盾する可能性があるためです (異なるデータが異なる時間に生成されたため)。少なくとも、復旧したノードの下流にあるノードは、変更される可能性のあるデータを処理しているため、おそらく最初から再起動する必要があります。とにかくそれが状況の私の理解です、私が間違っていたら私を修正してください。

私の質問は、Spark が何らかの方法でコードが非決定論的であるかどうかを自動的に検出し (たとえば、古い出力と新しい出力を比較することによって)、それに応じて障害回復を調整できるかどうかです。これが可能であれば、アプリケーション開発者は非決定論的なコードを記述する必要がなくなります。これは、時には困難であり、いずれにせよ、この要件は簡単に忘れられてしまう可能性があります。

4

2 に答える 2