spark java.lang.OutOfMemoryError: unable to create new native thread

最近迁移集群,在hadoop-2.8.4 的yarn上跑 spark 程序
报了以下错误

java.lang.OutOfMemoryError: unable to create new native thread

开始以为yarn 资源争抢问题,后来发现是系统限制用户进程数问题。

# 使用命令查看当前用户最大进程数
ulimit -u

# centos7 在这里修改 ullimit -u 的值
sudo vi /etc/security/limits.d/20-nproc.conf 

*          soft    nproc     262144
root       soft    nproc     unlimited

# 修改全局变量
sudo vi /etc/security/limits.conf 

root    hard    nofile    655350
root    soft    nofile    655350
root    hard    nproc     262144
root    soft    nproc     262144
*       hard    nofile    655350  # 可打开最大文件数,硬限制
*       soft    nofile    655350
*       hard    nproc     262144  # 此为所有用户可以打开的最大进程数,硬限制
*       soft    nproc     262144   # 此为所有用户可以打开的最大进程数,软限制,可超过
原文地址:https://www.cnblogs.com/jiangxiaoxian/p/9890428.html