質問

私は希少な入力文書用のOOMエラーをスローNLPライブラリ(スタンフォードNER)を使用しています。

私は最終的にこれらの文書を特定し、エラーが発生し、それらについて何を把握することを計画したが、これは、私はHadoopの中で実行している(行うのは難しいですので、私はちょうど、エラーが分割500分の379か何かを通じて17%を発生する知っています)そのような。暫定的な解決策として、私は、この特定のコールにCPUとメモリの制限を適用できるようにしたいと思います。

私はこれを行うための最善の方法がどうなるかわかりません。私の最初は、しかし一つのスレッドの固定のスレッドプールを作成し、将来に関する時限のget()を使用することです。これは、少なくとも私の可能性が多少役立つだろうウォールクロックの上限を与えるだろう。

私の質問は努力の合理的な量でこれよりも良い行うにはどのような方法があるかどうかです。

役に立ちましたか?

解決

ちょうどそのとき、次のいずれかに移動し、あなたが上にあった文書化され、ログのOutOfMemoryErrorをキャッチ。ガベージコレクタを使用すると、次の文書のための十分なメモリを持っていることを確認します。

(これは一つの文章が解析には長すぎるか複雑であれば、私は次の文に移動するためにスタンフォード大学の依存関係パーサで使う戦略の一つである。)

他のヒント

あなたがやろうとしているすべてがクラッシュされた文書を見つけ出すの場合は、「マップドキュメントxに約」、NLPライブラリへの呼び出しの周りにログイン置く必要があります。あなたがOOMを参照すると、マッパーのログは、運命の文書が含まれています。あなたが言ったように、あなたがしてライブラリがクラッシュし、その文書のどのような特性を決定する必要があります。

私の経験では、文書がインターネット上の人々によって作成された場合は特に、あなたはどこか狂った巨大な文書を検索します。その時点で、あなたはそのような文書をどのように処理するかを決定する必要があります。多分それらを切り捨て、それらを無視するかのいずれか。

scroll top