问题1:
java.lang.IllegalStateException: failed to obtain node locks, tried [[/data/es/data]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?
解决方法
在配置文件elasticsearch.yml
vim ./config/elasticsearch.yml
最后加入node.max_local_storage_nodes: 2
问题2:could not find java; set JAVA_HOME or ensure java is in PATH
解决方案:需要系统搭建Java环境,参考下面链接进行配置搭建Java环境(Java版本可更新)
判断是否启动成功,可执行如下命令,查看是否启用9200端口即可
ss -tanl
问题3:启动es服务的时候,是不允许使用超级管理员root账户
解决方法:
创建用户:useradd esuser
设置密码:passwd esuser
将es文件夹下的所有目录的所有权限迭代给esuser用户
chgrp -R esuser./es
chown -R esuser./es
chmod 777es
问题4:max file descriptors [4096] for elasticsearch process is too low,
原因:每个进程最大同时打开文件数太小
查看当前系统同时打开进程数的默认值:
ulimit -Hn
ulimit -Sn
解决方案:切换到root账户,修改/etc/security/limits.conf文件,
在后面追加这句,这个用户就是启动es的用户,因为es不能由root启动。
用户 hard nofile 65536
用户 soft nofile 65536
问题6:max virtual memory areas vm.max_map_count [65530] is too low,
原因:elasticsearch用户拥有的内存权限太小,至少需要262144
解决:切换到root用户,在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
添加完毕之后,执行命令:
sysctl -p
问题7:远程不能访问
端口没开