私はスパークストリーミングジョブを実行しており、ストリーミング入力は3時間ごとに約50MBです。ジョブは最初の数時間で少数のファイルを処理しました。しかし突然、次のエラーで失敗しました。エラーが発生した場合、入力は受信されませんでした。スパークジョブが新しいスレッドを作成できませんでした。スパークストリーミングジョブが「java.lang.OutOfMemoryError:新しいネイティブスレッドを作成できません」
私はビジネスロジックのRDDをキャッシュしていますが、新しいスレッドが新しい入力ファイルごとに作成されるため、問題はありません。したがって、キャッシュされたRDDは、スレッドが終了すると破棄されます。
誰でもこれを手伝うことができますか?私はたくさん試しましたが、問題を推測できませんでした。
エラーメッセージ:
17/12/21 15:32:31 INFO ContextCleaner: Cleaned RDD 9612
17/12/21 15:32:32 INFO CheckpointWriter: Saving checkpoint for time 1513869975000 ms to file 'hdfs://EAPROD/EA/supplychain/process/checkpoints/logistics/elf/eventsCheckpoint/checkpoint-1513869990000'
Exception in thread "dispatcher-event-loop-12" Exception in thread "dispatcher-event-loop-31" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:714)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:950)
at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1018)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "pool-28-thread-1" 17/12/21 15:32:32 INFO CheckpointWriter: Submitted checkpoint of time 1513869975000 ms writer queue
ありがとうございます。総スレッドが限界を超えていることがわかりました。しかし、ストリーミングジョブはスレッドを増やし続けるでしょうか?そして、実行されている古いスレッドも開催されますか? – Sankarlal
これはあなたが見つけ出すためのものであり、あなたのロジックに依存します。私は自分の答えを監視する手段を改正した。 –