Elasticsearch启动报错:Exception in thread "main" java.nio.file.AccessDeniedException

Elasticsearch启动报错:Exception in thread
出现以上错误的原因是:用户权限不够,拒绝执行。
可如果用root身份启动,则会报下图中的错误:
Elasticsearch启动报错:Exception in thread
我想到的办法是给用户增加sudo权限,这就需要修改sudoers文件。
首先,切换到root用户:

su - root

输入root用户的密码,由于/etc/sudoers文件是只读文件,需要添加写的权限:

chmod u+w /etc/sudoers

编辑/etc/sudoers文件:

vim /etc/sudoers

找到下图这行
在这里插入图片描述
在这行下面添加一行:

smarthome    ALL=(ALL)       ALL #smarthome是我要赋予权限的用户名

保存并退出。
撤销文件的写权限:

chmod u-w /etc/sudoers

使用sudo启动elasticsearch:

sudo ./bin/elasticsearch

再次报错:

#Elasticsearch启动报错:
which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)
could not find java; set JAVA_HOME or ensure java is in PATH

/etc/profile中的java环境配置部分如下:

JAVA_HOME=/usr/local/java/jdk/
JRE_HOME=/usr/local/java/jdk/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

并没发现有什么问题。
然后参考了ElasticSearch Kibana X-pack安装这篇博客,发现应该是我之前创建用户时用的是useradd命令,而且没有指定主目录以及设置密码,导致smarthome用户没有/home/smarthome和/home/smarthome/elasticsearch这两个目录的权限,所以需要授权给smarthome用户:

chown -R smarthome:smarthome /home/smarthome/elasticsearch/
chmod 777 /home/smarthome/elasticsearch
chown -R smarthome:smarthome /home/smarthome
chmod 777 /home/smarthome

Elasticsearch启动报错:Exception in thread
然后再次尝试启动elasticsearch:

./bin/elasticsearch

终于出现了熟悉的错误:
在这里插入图片描述
这两个错误在我之前写的一篇文章:CentOS 7安装Elasticsearch并设置开机启动也出现过。
1)max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536],文件权限不足,修改/etc/security/limits.conf:

sudo vim /etc/security/limits.conf

添加以下内容:

* soft nofile 65536 # 修改之前是65535
* hard nofile 131072 # 修改之前是65535
* soft nproc 4096
* hard nproc 4096

2)错误2:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],虚拟内存分配不足,需要修改/etc/sysctl.conf:

sudo vim /etc/sysctl.conf

添加以下内容:

vm.max_map_count=655360

执行sysctl -p命令:

sudo sysctl -p

Elasticsearch启动报错:Exception in thread
再次尝试启动elasticsearch:

./bin/elasticsearch

Elasticsearch启动报错:Exception in thread
启动成功!
访问http://121.36.60.68:9200
Elasticsearch启动报错:Exception in thread
总结:之前在虚拟机装的时候并没有遇到这么多问题,只能说:我太菜了。写得很乱,而且有的地方理解得可能不对,诚心欢迎诸位批评纠正!

参考链接:
https://blog.csdn.net/younger_china/article/details/23349249
https://blog.csdn.net/u010081710/article/details/53884519
https://blog.csdn.net/jiankunking/article/details/84374354

你可能感兴趣的:(Linux,Elasticsearch)