方案一:
elasticsearch安装后启动时候,遇到此问题,问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;
解决办法:
切换到root用户修改
vim /etc/security/limits.conf
在最后面追加下面内容
*** hard nofile 65536
*** soft nofile 65536
*** 是启动ES的用户
方案二:
ulimit -n 65535
使用 ulimit -Hn 查看当前值,果然是65535,
ulimit -Hn
65535
也就是说每次更新环境变量的时候limits.conf的hard nofile 131072设置被覆盖掉了
这就好办了,vi /etc/profile 将 ulimit -n 65535 行注释掉,退出重新进入当前用户,再使用 ulimit -Hn 查看当前值,已经是131072了,设置成功!
执行
ulimit -Hn 65536
验证
ulimit -Hn
65536
再去启动elasticsearch,OK!
方案三:确保非root账号打开文件数量也增大
1.打开/etc/security/limits.conf
,在里面添加如下内容
* soft nofile 65536
* hard nofile 65536
其中*表示所有用户 nofile表示最大文件句柄数,表示能够打开的最大文件数目
2.编辑/etc/pam.d/common-session
,添加如下内容
vi /etc/pam.d/common-session
session required pam_limits.so
3.编辑/etc/profile
,添加如下内容
ulimit -SHn 65536
然后重新启动机器,再利用ulimit -n
查看文件句柄数,发现文件句柄数变为65536