Exception in thread “main” java.nio.file.AccessDeniedException:/usr/local/elasticsearch-6.5.3/config/jvm.options
[elastic@hadoop01 bin]$ ./elasticsearch
Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elasticsearch-6.5.3/config/jvm.options
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:60)
错误原因:使用非 root用户启动ES,而该用户的文件权限不足而被拒绝执行。
解决办法:
切换到root用户下,执行
chown -R elastic:elastic /usr/local/elasticsearch-6.5.3
之后命令就可以正常执行了。
命令正常执行后,报如下错误:
[2021-09-23T14:18:41,180][INFO ][o.e.b.BootstrapChecks] [hadoop01] bound or publish ing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
下面分开描述解决办法:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]:
方法:
切换到root用户下(su root)
vi /etc/security/limits.conf
添加如下两行代码:
elasticsoft nofile 65536
elastichard nofile 65536
# elastic是新建的用户名
之后退出用户,重新登录用户,使配置生效——>reboot(重启虚拟机)
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
办法:
vi /etc/sysctl.conf ~>在root⽤户下进⾏修改
添加下⾯配置:
vm.max_map_count=655360
保存退出后执行如下命令,是配置生效
sysctl -p
问题解决了。