su: cannot set user id: Resource temporarily unavailable

前段公司在阿里云租了几台服务器,想用来做Hadoop开发环境,系统是默认安装的,没有调优,遇到个问题。

最开始Hadoop安装的时候,没啥事,很顺利的安装上了,也可以跑任务,速度也可以,然后几个人上来操作,遇到如下报错:

[root@UDNT01 ~]# su - hadoop
su: cannot set user id: Resource temporarily unavailable

很明显hadoop用户的资源不可用,换个用户也是这样的:

[root@venn01 ~]# su - oracle
su: cannot set user id: Resource temporarily unavailable

但是root 就没有关系,很明显,用户打开的资源文件太多了,linux操作系统默认最大允许进程数是1024、

知道问题,那就好办了,修改下用户的限制就行了

解决办法:

1、修改limits.conf 调大用户最大打开文件数限制

[root@venn01 conf]$ cat /etc/security/limits.conf
# /etc/security/limits.conf
#

hadoop soft nofile 1048576
hadoop hard nofile 1048576
hadoop soft nproc 1048576
hadoop hard nproc 1048576

2、修改90-nproc.conf,调大系统默认对其他用户的1024进程限制

[root@venn01]# cat /etc/security/limits.d/90-nproc.conf
 *          soft    nproc     1024        #改成4096
 root       soft    nproc     unlimited

搞定。

原文地址:https://www.cnblogs.com/Springmoon-venn/p/9615471.html