手记

Spark报错解决:java.lang.OutOfMemory, unable to create new native thread

报错

java.lang.OutOfMemory, unable to create new native thread
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)

原因

上面这段错误提示的问题是Linux操作系统无法创建更多进程,导致出错,并不是系统的内存不足。因此要解决这个问题需要修改Linux允许创建更多的进程,就需要修改Linux最大进程数。

$ ulimit -a
临时修改允许打开的最大进程数
$ ulimit -u 65535
临时修改允许打开的文件句柄
$ ulimit -n 65535
永久修改Linux最大进程数量

$ vim /etc/security/limits.d/90-nproc.conf

root       soft    nproc     unlimited
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock -1
* hard memlock -1
使用 su - <user> 切换到普通用户ulimit -a 查看修改是否成功

我自己修改完文件,重启了才没报错

永久修改用户打开文件的最大句柄数,该值默认1024,一般都会不够,常见错误就是not open file

$ vim /etc/security/limits.conf
bdata  soft    nofile  65536
bdata  hard    nofile  65536



作者:祗談風月
链接:https://www.jianshu.com/p/10bea1006477


0人推荐
随时随地看视频
慕课网APP