前段公司在阿里云租了几台服务器,想用来做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
搞定。