我通过创建3个不同的配置文件,然后运行以下命令,在我的开发盒上创建了3个弹性搜索实例:
elasticsearch.bat -Des.config="C:\Program Files\elasticsearch-1.5.1\config\elasticsearch.yml"
elasticsearch.bat -Des.config="C:\Program Files\elasticsearch-1.5.1\config\elasticsearch_1.yml"
elasticsearch.bat -Des.config="C:\Program Files\elasticsearch-1.5.1\config\elasticsearch_2.yml"
这似乎已成功创建了3个节点,但群集运行状况显示为:
{
"cluster_name": "elasticsearch",
"status": "yellow",
"timed_out": false,
"number_of_nodes": 3,
"number_of_data_nodes": 3,
"active_primary_shards": 135,
"active_shards": 135,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 135,
"number_of_pending_tasks": 0
}
启用多播(因为它是默认设置),并且所有配置文件都具有默认设置。我在每一个中做出的唯一明确的设定是:
script:
disable_dynamic: false
我需要因为我正在使用脚本字段,但我认为这个设置不太可能对我当前的问题有任何影响。我期望群集应该是绿色的,因为默认的副本数是1.出于某种原因,elasticsearch认为副本分片是不活动的但我不知道它为什么不激活副本。以下链接似乎与我所做的类似,但实现了具有绿色状态的集群:
http://thediscoblog.com/blog/2013/09/03/effortless-elasticsearch-clustering/
任何想法我可能做错了什么?
更新 为了给出安德烈给出的答案的一些背景,在日志中查看显示如下的行,反复出现:
[2015-05-08 16:04:25,284][WARN ][cluster.routing.allocation.decider] [Robert Kelly] high disk watermark [10%] exceeded on [IZ6wN0KQQMSjjtkhfkQnMQ][Yith] free: 6.2gb[5.2%], shards will be relocated away from this node
[2015-05-08 16:04:25,284][WARN ][cluster.routing.allocation.decider] [Robert Kelly] high disk watermark [10%] exceeded on [AQ8BnsURQsCywKxkjStu7A][Robert Kelly] free: 6.2gb[5.2%], shards will be relocated away from this node
[2015-05-08 16:04:25,284][WARN ][cluster.routing.allocation.decider] [Robert Kelly] high disk watermark [10%] exceeded on [ZlH32e6JT9C_VcAfNtxV0A][Maxam] free: 6.2gb[5.2%], shards will be relocated away from this node
答案 0 :(得分:2)
您没有足够的磁盘空间,因此将不再分配副本。运行
.length
禁用保护机制。但这是一个临时解决方案,当然你需要释放一些磁盘空间。此外,群集重启后错误将会恢复。
如果您希望它是永久性的,请运行
0
不同之处在于后一种情况下的设置为PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.disk.threshold_enabled": false
}
}
,这意味着它将在群集重启后继续存在。