我在AWS上设置了elasticsearch集群。我已经设置了三个名为的UBUNTU实例: elasticsearch1,elasticsearch2,elasticsearch3
我已使用Elasticsearch Cloud AWS插件进行配置和节点发现。
理想情况下应该显示三个节点,但是当我运行时:
curl -XGET 'http://172.30.0.17:9200/_cluster/health?pretty=true'
我明白了:
{
"cluster_name" : "LogstashCluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 5,
"number_of_data_nodes" : 5,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
elasticsearch1的主节点创建了3个节点:
为什么会这样?
答案 0 :(得分:2)
正如你所说,你得到了ps aux |的输出grep elasticsearch |主服务器(172.30.0.17)上的wc -l为4,很明显,master上运行了多个elasticsearch实例实例。另一种通过检查java打开的tcp端口来验证这一点的方法。默认情况下,elasticsearch侦听两个端口,即9200和9300.您可以使用以下命令检查正在运行的TCP端口列表
netstat -ntlp | awk' / [j] ava /'
如果您通过java打开了两个以上的端口,那么您将运行多个elasticsearch实例。在这里,我假设你只在运行java的服务器上运行弹性网。
要解决此问题,请执行以下步骤
ps auxw | awk' / [e] lasticsearch /&& / [j] ava / {print $ 2}' | xargs kill -9
ps auxw | awk' / [e] lasticsearch /&& / [j] ava / {print $ 2}'
service elasticsearch start
ps auxw | awk' / [e] lasticsearch /&& / [j]的AVA /' | wc -l#你应该输出为1
netstat -ntlp | awk' / [j] ava /' | wc -l#你应该输出为2