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

记录一个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配置文件

network.host: 0.0.0.0
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和端口号是否写正确

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值