我正在尝试将客户端连接到ElasticSearch集群,但我无法使其正常工作。我在这里和弹性搜索论坛中提到了其他问题,但没有一个建议帮助了我。
我可以通过端口9300
远程登录到每个弹性搜索节点。
群集状态为绿色,我可以使用TransportClient
进行连接而不会出现任何问题。
代码(Scala):
val immutableSettings = ImmutableSettings.settingsBuilder
.put("node.name", "node-client")
.put("http.enabled", "false")
.put("index.number_of_shards", 5)
.put("index.number_of_replicas", 3)
.put("cluster.name", "my-cluster")
.put("discovery.zen.ping.multicast.enabled", false)
.putArray("discovery.zen.ping.unicast.hosts", "host1:9300", "host2:9300","host3:9300", "host4:9300", "host5:9300")
.build
lazy val node = NodeBuilder.nodeBuilder()
.loadConfigSettings(false)
.client(true)
.settings(immutableSettings)
.node()
例外:
org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];[SERVICE_UNAVAILABLE/2/no master]
我理解这是因为客户端无法加入群集,但我无法找出原因。
我检查了所有5个节点中的日志,但是没有看到任何记录。而且我也没有足够的权限来更改日志记录级别。