root不能启动es
出现异常:
java.lang.RuntimeException: can not run elasticsearch as root
解决办法:
- 创建一个新的用户去启动es
- 流程:
#添加一个用户:elasticsearch
$useradd elasticsearch
#给用户elasticsearch设置密码,连续输入2次
$passwd elasticsearch
#创建一个用户组 es
groupadd es
#分配 elasticsearch 到 es 组
usermod -G elasticsearch es
#在elasticsearch 根目录下,给定用户权限。-R表示逐级(N层目录) , * 表示 任何文件
chown -R elasticsearch.es *
#切换到elasticsearch用户
su elasticsearch
外网不能访问es
异常出现:
拒绝访问
解决方法:
- 关闭防火墙:
service firewalld stop
- 在/config/elasticsearch.yml 配置里添加下面参数
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 0.0.0.0
es在docker中起不来
异常出现:
docker起不来
解决方法
- 在/config/jvm.options中修改jvm的大小
22 -Xms1024M
23 -Xmx1024M
spring boot 继承es 抛出异常None of the configured nodes are available
异常:
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{JxLWuJHgSG-a09CpE85mkg}{127.0.0.1}{127.0.0.1:9300}]]
解决方法:
- 认证集群名称是否正确
- 在localhost:9200看到的信息:“cluster_name” : “baron”
- java代码中设置集群的数据
Settings settings = Settings .builder() .put("cluster.name","baron") .put("client.transport.sniff", true) .build();
- 版本需要对上es的版本
- 例如:es版本是5.5.3,org.elasticsearch.client.jar的版本也应该是5.5.3
- es的所有jar包版本需要一致:在spring boot 中,是有继承版本的,如果自己pom中没有定义版本,那么就会出现某些es子包出现版本不一致