我已经安装了运行的ElasticSearch服务器:
$ ./elasticsearch -f {0.18.2}[11698]: initializing ... loaded [], sites [] {0.18.2}[11698]: initialized {0.18.2}[11698]: starting ... bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.1.106:9300]} new_master [Stingray][ocw4qPdmSfWuD9pUxHoN1Q][inet[/192.168.1.106:9300]], reason: zen-disco-join (elected_as_master) elasticsearch/ocw4qPdmSfWuD9pUxHoN1Q recovered [0] indices into cluster_state bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.1.106:9200]} {0.18.2}[11698]: started
如何配置Java客户端以连接到该服务器?我刚刚:
node.client=true
但是,尝试连接后,我收到了:
org.elasticsearch.discovery.MasterNotDiscoveredException: at org.elasticsearch.action.support.master.TransportMasterNodeOperationAction$3.onTimeout(TransportMasterNodeOperationAction.java:162)
如果我将Java客户端配置为:
node.data=false
我收到以下日志:
INFO main node:internalInfo:93 - [Stark, Tony] {0.18.2}[13008]: starting ... INFO main transport:internalInfo:93 - [Stark, Tony] bound_address {inet[/0:0:0:0:0:0:0:0:9301]}, publish_address {inet[/192.168.1.106:9301]} INFO elasticsearch[Stark, Tony]clusterService#updateTask-pool-13-thread-1 service:internalInfo:93 - [Stark, Tony] new_master [Stark, Tony][WkNn96hgTkWXRnsR0EOZjA][inet[/192.168.1.106:9301]]{data=false}, reason: zen-disco-join (elected_as_master)
据我了解,这意味着这个新节点(应该是客户端节点)使自己成为新的主节点。而且我不会从日志中找到它并连接到任何其他节点。
服务器和客户端都在同一台计算机上启动。192.168.1.106:9200可从浏览器访问。
而且我找不到关于发现配置的任何好的文档。在哪里可以阅读有关ElasticSearch配置的更多信息?以及如何配置Java客户端?
面对相同的问题,即节点无法在节点重新启动时选举主节点。
问题在于节点之间的通信。
请确保在elasticsearch日志中,节点重启是否显示
publish_address {127.0.0.1:9200} or publish_address {0.0.0.1:9200}
这意味着当前节点未将其IP地址发布给其他节点,因此即使该节点IP可能存在于 Discovery.zen.ping.unicast.hosts中,* 这些节点也无法识别该节点。 *
解决方案 在elasticsearch.yml中进行以下更改。加
network.host: _non_loopback:ipv4_ and restart the node. Ensure that the bound address now shows the <IP address>:<port no> and not the localhost.
这意味着现在您的节点是可发现的。使它在群集中可发现的第二步是将节点的ip地址添加到所有主节点的单播主机列表中,以便每当我们有一个新的主节点时,新的主节点就可以发现该节点。
Add the node IP to the discovery.zen.ping.unicast.hosts list of hosts of all the masters to make it disoverable. A masterpings all the nodes present in the unicast list.