Spark Streaming作业失败,出现“java.lang.OutOfMemoryError:无法创建新的本机线程”

问题描述 投票:0回答:1

我有火花流工作运行,流输入每3小时约50 mb。该工作在最初的几个小时内处理了几个文件。但突然失败,出现以下错误。发生错误时未收到任何输入。火花作业无法创建新线程。

我已经在业务逻辑中缓存了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
java apache-spark streaming bigdata
1个回答
0
投票

密切监控您的申请,using the Linux toolstack。这是Linux内核强制执行用户/系统限制并终止进程的情况,因为已超出开放线程的数量。您可以增加该限制,但可能还会泄漏代码中的线程。

有关如何管理系统和用户变量的信息,请参阅this answer

© www.soinside.com 2019 - 2024. All rights reserved.