GET _cat/recovery?v=true&h=i,s,t,ty,st,shost,thost,f,fp,b,bp&s=index:desc
**用途:**返回有关分片恢复的信息,包括正在进行的和已完成的。
**注意:**分片恢复完成后,恢复的分片可用于搜索和索引。
2. **确定每个节点将被恢复的并发分片数**
如下设置若生效,本质上是:
node_concurrent_incoming_recoveries和 node_concurrent_outgoing_recoveries同时生效。
incoming_recoverie可以简单理解为副本分片的恢复,outgoing_recoveries可以简单理解为主分片的恢复。
PUT _cluster/settings
{
“transient”: {
“cluster.routing.allocation.node_concurrent_recoveries”: 3
}
}
默认值是2,理论上调大会增大并发。
[Cluster-level shard allocation and routing settings | Elasticsearch Guide [8.7] | Elastic]( )
3. **延时分片分配策略**
当节点出于任何原因(人为原因或系统异常)离开集群时,主节点会做出以下反应(如下称为步骤 X 是方便后续的解读):
步骤1:将副本分片提升为主分片以替换节点上的任何主分片。
步骤2:分配副本分片以替换丢失的副本(在有足够的节点的前提下)。
步骤3:在其余节点之间均匀地重新平衡分片。
以上操作的好处是:避免集群数据丢失,确保集群高可用。
但可能带来的副作用也非常明显:其一,会给集群带来额外的负载(分片分配非常耗费系统资源);其二,若离开集群的节点很快返回,上述机制的必要性就有待商榷。
此时,延迟分片分配就显得非常必要,设置如下:
PUT _all/_settings
{
“settings”: {
“index.unassigned.node_left.delayed_timeout”: “6m”
}
}
**延时分片分配策略的本质**
当节点离开集群并确认几分钟(自己设定)可以快速上线的情况下,离开的过程中只触发步骤1的将离开节点上的对应的副本分片提升为主分片。此时集群至少不是red 状态,而是yellow状态。步骤2、步骤3不会发生,此时集群是可用的,待设定的几分钟内下线集群确保重新上线后,分片再重新转为副本分片,此时集群恢复绿色状态。
这个过程有效避免了步骤2、步骤3的分片分配,整体上以最短的时间确保了集群的高可用性。
[Delaying allocation when a node leaves | Elasticsearch Guide [8.7] | Elastic]( )
4. **限制恢复速度以避免集群过载**
Elasticsearch 限制分配给恢复的速度以避免集群过载。
可以更新此设置以使恢复更快或更慢,具体取决于业务要求。在资源允许的情况下,想快就调大;反之,则相反。
但一味的追求快速恢复,将如下设置过高,正在进行的恢复操作会消耗过多的带宽和其他资源,这可能会破坏集群的稳定性。
PUT _cluster/settings
{
“transient”: {
“indices.recovery.max_bytes_per_sec”: “100mb”
}
}
注意事项:
这是集群层面的动态设置,一旦设置后,对集群中每个节点都生效。
如果仅想限制有限的某个节点,可以通过更新elasticsearch.yml 配置文件的静态配置来实现。
[Index recovery settings | Elasticsearch Guide [8.7] | Elastic]( )
以上是集群还可以访问的情况下
集群无法响应的情况下如何恢复???
提速的核心:删除历史“包袱”(将来不再需要的大索引),以间接使得集群恢复加速。
免责说明:
* 如下的验证,仅在单节点集群验证 ok,多节点原理一致。
* 涉及文件的操作,是无法之法,**万不得已,不要直接操作文件。**
1. **找到待删除大索引的 uuid**
部分命令可执行,可以 cat/index
GET _cat/indices?v&s=docs.count:desc
找到对应的uuid
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/e0da987dbb08715c06096853503b343b.png)
![img](https://img-blog.csdnimg.cn/img_convert/8039359bdfd711beb6c749961f07de88.png)
![img](https://img-blog.csdnimg.cn/img_convert/d708c27ed6eaca4f830a86c103a4ee45.png)
![img](https://img-blog.csdnimg.cn/img_convert/d48b50e75c6dccf687f62764163e59f1.png)
![img](https://img-blog.csdnimg.cn/img_convert/6c78162ead265146913553fce434c5c7.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
![img](https://img-blog.csdnimg.cn/img_convert/966d5803d60de3064b19340be21d71fd.png)
**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
04888 (备注大数据获取)**
[外链图片转存中...(img-U3Kj1PAE-1712957866862)]
**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**