我正在使用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
我已将session required pam_limits.so
添加到每个文件的开头。我重新启动了相关的盒子,设置没有生效。
我还发现用户/etc/security/limits.d/
hbase
和mapred
的{{1}}目录中有文件。我试过改变这些单独文件中的限制也无济于事。
我也试过将hdfs
放在ulimit -S -n unlimited
内。那没起效。
最后,我尝试将/etc/profile
置于limit nofile unlimited unlimited
个文件中作为第一行。不工作。
有一件有趣的事情是,我没有在盒子上安装hbase,但我在/etc/init.d/hadoop*
目录中有一个hbase.conf
文件。此文件中的设置反映在/etc/security/limits.d/
中。但是,ulimit -n
和hdfs.conf
的设置未得到反映。这表明有些内容会覆盖mapred.conf
和hdfs
的设置。
我想我已经尝试过人们在几个论坛上建议的所有内容,还有什么我可能错过或做错了吗?
我使用mapred
作为我的hadoop发行版。
答案 0 :(得分:0)
你是如何检查ulimit的?
我遇到了类似的问题,我会运行sudo ulimit -n
,但仍会看到1024
。这是因为ulimit
是内置的Bash。为了查看/etc/security/limits.conf
中反映的更改,我必须以实际用户身份运行ulimit
。