当前位置:   article > 正文

NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{y3Jjg6zOSXODy5

nonodeavailableexception[none of the configured nodes are available: [{#tran

记录一个Java调用elasticsearch报错:NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{y3Jjg6zOSXODy5N5nKCIrg}{127.0.0.1}{127.0.0.1:9300}]

环境:win10

docker

elasticsearch5.6.12

解决方案修改elasticsearch配置文件、修改jar包版本、java代码修改端口号

1.修改elasticsearch.yml配置文件

  1. network.host: 0.0.0.0
  2. cluster.name: gpjes

2.找到与安装的elasticsearch版本匹配的pom文件

3.修改java代码中cluster.name中与配置文件相对应,端口号改为9300。(9200是HTTP请求访问使用的,不要写错了)

分享下自己遇到的问题

     按照官网的demo,集成到java后,就报这个错。百度、Google搜索了下,总的来说就是这三种解决方式。打开elasticsearch.yml后,里面只有一条配置

http.host: 0.0.0.0

这个地方没看清,只改了cluster.name: gpjes。这里是http.host而不是network.host。然后一直认为这个地方没有问题了,搞了三天,发现当时看错了,添加network.host: 0.0.0.0后程序就能跑了。简直是绝望!!!所以搞一些配置的东西,还需要点耐心。。。

问题定位:

使用docker的朋友,分享一下这几天我定位问题的一些思路,希望对你们有用。

elasticsearch是用java开发的。我们可以通过elasticsearch自身的日志来定位问题。elasticsearch的日志输出配置文件是/usr/share/elasticsearch/config/log4j2.properties。如果要修改日志级别,可以修改该配置文件。

docker启动elasticsearch容器后,使用命令 docker logs -f 89f3d3b4a9c3。89f3d3b4a9c3是elasticsearch容器的CONTAINER ID,使用该命令需要修改。没有使用docker的朋友可以使用tail命令查看日志

1.如果和截图一样

9200端口publish_address {172.17.0.2:9200}, bound_addresses {0.0.0.0:9200} 

而9300端口publish_address {127.0.0.1:9300}, bound_addresses {127.0.0.1:9300}

日志是这样输出的,elasticsearch.yml配置文件需要增加network.host: 0.0.0.0配置

2.如果elasticsearch日志类似下图

则说明jar版本不支持。更新成日志建议版本即可。

3.如果日志没有任何输入,java代码中看看cluster.name和端口号是否写正确

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/457625
推荐阅读
  

闽ICP备14008679号