Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lucene ElasticSearch:意外启动同一服务器中的2个实例_Lucene_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Lucene,elasticsearch" /> elasticsearch,Lucene,elasticsearch" />

Lucene ElasticSearch:意外启动同一服务器中的2个实例

Lucene ElasticSearch:意外启动同一服务器中的2个实例,lucene,elasticsearch,Lucene,elasticsearch,所以我意外地在同一台机器上启动了两个ElasticSearch实例。一个端口为9200,另一个端口为9201。这意味着有2个集群节点,每个节点都有相同的名称,每个节点都有1/2的总碎片用于每个索引 如果我杀死其中一个实例,我现在会得到一个实例拥有1/2的碎片 如何解决此问题?我只想有一个包含所有碎片的实例(就像以前一样)所以。。。有一个干净的方法来解决这个问题。尽管我必须说ElasticSearch文档非常混乱(所有这些流行词,如cluster和zen discovery,都让我感到困惑!) (

所以我意外地在同一台机器上启动了两个ElasticSearch实例。一个端口为9200,另一个端口为9201。这意味着有2个集群节点,每个节点都有相同的名称,每个节点都有1/2的总碎片用于每个索引

如果我杀死其中一个实例,我现在会得到一个实例拥有1/2的碎片


如何解决此问题?我只想有一个包含所有碎片的实例(就像以前一样)

所以。。。有一个干净的方法来解决这个问题。尽管我必须说ElasticSearch文档非常混乱(所有这些流行词,如cluster和zen discovery,都让我感到困惑!)

(一) 现在,如果您有两个实例,一个在端口9200中,另一个在9201中。你希望所有的碎片都是9200

运行此命令以禁用9201实例中的分配。如果希望此更改不是永久性的,可以将持久性更改为瞬态。我会坚持下去,这样就不会再发生这种事了

curl -XPUT localhost:9201/_cluster/settings -d '{
    "persistent" : {
        "cluster.routing.allocation.disable_allocation" : true
    }
}'
2) 现在,运行命令将9201实例中的所有碎片移动到9200

curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
    "commands" : [ {
          "move" : 
            {
              "index" : "<NAME OF INDEX HERE>", "shard" : <SHARD NUMBER HERE>, 
              "from_node" : "<ID OF 9201 node>", "to_node" : "<ID of 9200 node>"
            }
        }
    ]
}'
curl-XPOST'localhost:9200/_集群/重新路由'-d'{
“命令”:[{
“移动”:
{
“索引”:“碎片”:,
从节点“:”到节点“:”
}
}
]
}'
您需要为9201实例中的每个碎片(您想要删除的碎片)运行此命令

如果您有ElasticSearch头,该碎片将是紫色的,并且将具有“重新分配”状态。如果你有很多数据,比如说>1GB,碎片移动需要一段时间——可能需要一个小时甚至更长时间,所以要有耐心。在所有操作完成之前,不要关闭实例/节点


就这样

更多内容供我自己学习,但您能否将每个索引的副本设置为1,让它们分配/上传,然后关闭9201节点?剩下的“集群”(9200上的一个节点)不会将副本升级到原色吗?是的,我相信这是可能的,但我没有尝试。@JamesAddison是的,这也是可能的。此外,还有一个脱机选项,即停止节点(或至少禁用刷新),手动合并两个数据子文件夹,其中包含两个不同节点的索引,然后启动要保留的节点。另外,在真正的服务器(而不是您的机器)中,请记住在移动完碎片后重新启用分配。@javanna在相关说明中,备份弹性搜索索引的最佳方法是什么?