1. 程式人生 > >異常org.elasticsearch.client.transport.NoNodeAvailableException

異常org.elasticsearch.client.transport.NoNodeAvailableException

http://localhost:9200/_cluster/health/ 檢視一下:

{"cluster_name":"elasticsearch","status":"green","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":0,"active_shards":0,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0}

本菜鳥我第一次接觸elasticsearch,一開始就碰到了No node available,誒,真的是菜鳥啊,用別人的例子照著做都不能跑出來,

現在依稀還記得這個問題是怎麼解決的,記錄下來吧

 org.elasticsearch.client.transport.NoNodeAvailableException: No node available

可能是以下幾種錯

1 埠錯

client = new TransportClient().addTransportAddress(new InetSocketTransportAddress(ipAddress, 9300));

這裡9300 寫成9200的話會No node available

要是你連的不是本機,注意IP有沒有正確

2 jar報引用版本不匹配,開啟的服務是什麼版本,引用的jar最好匹配(這個我沒有去試,反正我的是匹配的)

3 要是你改了叢集名字,還有設定叢集名字

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "xxx").build();
            client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(ipAddress, 9300));

本人的問題是:jar包版本不正確,將專案的elasticsearch版本和部署伺服器的jar包版本換成一致即可。