网上的解决办法都是修改/etc/security/limits.conf文件,增加hadoop hard nofile 131072一行
vi /etc/security/limits.conf hadoop soft nofile 65536 hadoop hard nofile 131072 hadoop soft nproc 2048 hadoop hard nproc 4096
可是,我的配置本来就已经设置成这样了的
网上找来找去,都是修改limits.conf文件这个答案,最怕这种了,所有的人都指向同一个答案,却不能解决自己的问题
后来突然想到是不是环境变量的问题,仔细检查了一遍,发现一个可疑的设置
vi /etc/profile ulimit -n 65535
使用 ulimit -Hn 查看当前值,果然是65535,
ulimit -Hn 65535
也就是说每次更新环境变量的时候limits.conf的hard nofile 131072设置被覆盖掉了
这就好办了,vi /etc/profile 将 ulimit -n 65535 行注释掉,退出重新进入当前用户,再使用 ulimit -Hn 查看当前值,已经是131072了,设置成功!
vi /etc/profile # ulimit -n 65535
ulimit -Hn 131072
1、切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
再去启动elasticsearch,OK!