我正在使用hadoop,需要更改打开的文件ulimit -n
的数量。我在stackoverflow和其他地方看到过类似的问题,并尝试过这些答案中的所有内容,但仍然不起作用。我正在使用ubuntu 12.04 LTS
。以下是我所做的:
/etc/security/limits.conf
中的更改限制,我已经为*和root
设置了。我还将限制更改为一些数字,如10000
和unlimited
。
* soft nofile 1513687
* hard nofile 1513687
root soft nofile 1513687
root hard nofile 1513687
我也用-
而不是soft
和hard
尝试了上述设置。在这些更改之后,我对/etc/pam.d/
文件进行了更改,例如:
common-session
common-session-noninterative
login
cron
sshd
su
sudo
我已经将CCD_ 11添加到每个文件的开头。我重新启动了有问题的框,但设置没有生效。
我还发现/etc/security/limits.d/
目录中有用户hbase
、mapred
和hdfs
的文件。我也尝试过更改这些单独文件中的限制,但没有成功。
我也试过把ulimit -S -n unlimited
放在/etc/profile
里面。它不起作用。
最后,我尝试将limit nofile unlimited unlimited
放在/etc/init.d/hadoop*
文件中作为第一行。不起作用。
不过,有一件有趣的事情是,我没有在盒子上安装hbase,但我在/etc/security/limits.d/
目录中有一个hbase.conf
文件。该文件中的设置反映在ulimit -n
中。但是来自hdfs.conf
和mapred.conf
的设置没有被反映。这表明有东西正在覆盖hdfs
和mapred
的设置。
我想我已经尝试了人们在几个论坛上建议的一切,还有什么我可能错过或做得不对的吗?
我使用CDH 4.4.0
作为我的hadoop发行版。
您是如何检查ulimit的?
我遇到了类似的问题,我会运行sudo ulimit -n
,但仍然会看到1024
。这是因为ulimit
是内置的Bash。为了查看/etc/security/limits.conf
中反映的更改,我不得不作为实际用户运行ulimit
。