问题场景:
我是直接复制的单机版的ES,然后分别启动集群中的ES时,出现:
[admin@localhost bin]$ ./elasticsearch
Exception in thread "main" java.nio.file.AccessDeniedException: /home/leyou/elasticsearch/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:58)
出现原因:
Elasticsearch不能以root方式启动
查看节点是什么启动
ls -ld 目录名
# 比如:我想查看我的ES节点es_node1
ls -ld es_node1
解决方法
改变目录及其目录下所有文件的所有者为你自己的用户名
chown -R yourname dirname
# 比如我的
chown -R yourname es_node1
重新启动ES,可以正常启动!