sparkSpark学习之路

Spark报错解决:java.lang.OutOfMemory,

2018-08-25  本文已影响9人  祗談風月

报错

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.cnblogs.com/arachis/p/Spark_Exception.html

上一篇下一篇

猜你喜欢

热点阅读