Elasticsearch(四) es出现的问题:填坑

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子包出现版本不一致
    image.png
发布了54 篇原创文章 · 获赞 14 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/GG_and_DD/article/details/85253116