在ubuntu 12.04上更改ulimit永远不会工作

时间:2013-12-26 10:23:26

标签: hadoop ubuntu-12.04 ulimit

我正在使用hadoop并需要更改打开文件的数量ulimit -n。我在stackoverflow和其他地方看到了类似的问题,并尝试了这些答案中的所有内容,但它仍然无效。我正在使用ubuntu 12.04 LTS。这就是我所做的:

更改/etc/security/limits.conf中的限制,我已为*和root设置了设置。我还将限制更改为某些数字,例如10000unlimited

* soft nofile 1513687
* hard nofile 1513687
root soft nofile 1513687
root hard nofile 1513687

我还尝试使用-代替softhard进行上述设置。完成这些更改后,我对/etc/pam.d/文件进行了更改,例如:

common-session 
common-session-noninterative
login
cron
sshd
su
sudo

我已将session required pam_limits.so添加到每个文件的开头。我重新启动了相关的盒子,设置没有生效。

我还发现用户/etc/security/limits.d/ hbasemapred的{​​{1}}目录中有文件。我试过改变这些单独文件中的限制也无济于事。

我也试过将hdfs放在ulimit -S -n unlimited内。那没起效。

最后,我尝试将/etc/profile置于limit nofile unlimited unlimited个文件中作为第一行。不工作。

有一件有趣的事情是,我没有在盒子上安装hbase,但我在/etc/init.d/hadoop*目录中有一个hbase.conf文件。此文件中的设置反映在/etc/security/limits.d/中。但是,ulimit -nhdfs.conf的设置未得到反映。这表明有些内容会覆盖mapred.confhdfs的设置。

我想我已经尝试过人们在几个论坛上建议的所有内容,还有什么我可能错过或做错了吗?

我使用mapred作为我的hadoop发行版。

1 个答案:

答案 0 :(得分:0)

你是如何检查ulimit的?

我遇到了类似的问题,我会运行sudo ulimit -n,但仍会看到1024。这是因为ulimit是内置的Bash。为了查看/etc/security/limits.conf中反映的更改,我必须以实际用户身份运行ulimit