2017-10-11 10 views

答えて

4

このエラーは、Daskスケジューラが作業を信頼しなくなったときに発生します。これは、予期せずにワーカーが亡くなったときに頻繁に発生したためです。 segfaultやメモリエラーなど、作業者を殺すようなタスクからクラスタを保護するように設計されています。

スケジューラは、突然死亡すると、その作業者が死亡したときに実行中のタスクをメモします。これらのタスクを他のワーカーに再試行するだけでなく、疑わしいものとしてマークします。同じタスクが複数のワーカーに存在する場合、それらのジョブが終了すると、スケジューラーはこのタスクの再試行を中断し、代わりに例外としてKilledWorkerを失敗としてマークします。

多くの場合、タスクにその他の問題があることを意味します。おそらく、セグメンテーションフォルトが発生したり、あまりにも多くのメモリを割り当てたりします。スレッドセーフではないライブラリを使用している可能性があります。それとも、それはちょうど非常に不運です。それにもかかわらず、作業員のログを調べて、作業員がなぜ失敗したのかを判断する必要があります。これは、あなたの仕事が失敗するより大きな問題である可能性が高いです。

この動作は、~/.dask/config.yamlファイルの次のエントリを変更することで制御できます。

allowed-failures: 3  # number of retries before a task is considered bad 
関連する問題