在学习Elasticsearch的时候,第一次运行就出现了下面的错误:
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{hnP6DsAyQGif53-oYkfGJA}{192.168.3.160}{192.168.3.160:9300}]]
错误的意思是:无可用结点
造成错误的原因:
1.程序中Elasticsearch的配置和Elasticsearc服务配置的集群名称不一致。
2.程序中访问Elasticsearch服务的IP或接口错误。
下面是我程序中的Elasticsearch配置
elasticsearch:
cluster-name: my-elasticsearch # 访问的集群名称
cluster-nodes: 192.168.3.160:9300 # 访问的服务器IP和端口
而这是我部署在Linux上的Elasticsearch的 config/elasticsearch.yml 文件中对用的配置
cluster.name: elasticsearch # 配置elasticsearch的集群名称
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问
可以看到我程序中的集群名称和Elasticsearch中设置的集群名称不同,这就是“无可用结点”的原因,将程序中的集群名称与Elasticsearch中的集群名称对应,就没有这个错误了。
当然还有还有IP和接口的错误,这时候你要查看自己服务器的IP地址和Elasticsearch服务的接口(注意不同系统会有不同IP查询命令)
Elasticsearch服务的接口可以在Elasticsearch服务启动的提示找到,就是 ./elasticsearch后的提示
可以看到对应的接口是9300,需要注意的是9300是面向java的接口,9200是面向http的接口
最后将IP和接口对应上,这个错误就解决了。