Elasticsearch 集群健康值红色终极解决方案.docxVIP

Elasticsearch 集群健康值红色终极解决方案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Elasticsearch 集群健康值红色终极处理方案 head插件会以不同的颜色显示。? 1)、绿色——最健康的形态,代表全部的主分片和副本分片都可用;? 2)、黄色——全部的主分片可用,但是部分副本分片不行用;? 3)、红色——部分主分片不行用。(此时执行查询部分数据仍旧可以查到,遇到这种情况,还是赶快处理比较好。)? 参考官网:/RltLEpN(部分中文集群健康形态博文材料翻译的不够精确,以官网为准) 假如集群形态为红色, Head插件显示:集群健康值red 。则说明:至少一个主分片安排失败。 这将导致一些数据以及索引的某些部分不再可用。 虽然如此, ElasticSearch还是允许我们执行查询,至于是通知用户查询结果可能不完整还是挂起查询,则由应用构建者来打算。 2、什么是unassigned 分片? 一句话解释:未安排的分片。? 启动ES的时候,通过Head插件不停刷新,你会发觉集群分片会呈现紫色、灰色、最终绿色的形态。 3、为什么会消灭 unassigned 分片? 假如不能安排分片,例如,您已经为集群中的节点数过分安排了副本分片的数量,则分片将保持UNASSIGNED形态。? 其错误码为:ALLOCATION_FAILED。 你可以通过如下指令,查看集群中不同节点、不同索引的形态。 GET _cat/shards?h=index,shard,prirep,state,unassigned.reason 4、消灭unassigned 分片后的症状? head插件查看会:Elasticsearch启动N长时候后,某一个或几个分片仍持续为灰色。 5、unassigned 分片问题可能的缘由? 6、集群形态红色如何排查? 7、如何Fixed unassigned 分片问题? 方案一:极端情况——这个分片数据已经不行用,直接删除该分片。? ES中没有直接删除分片的接口,除非整个节点数据已不再使用,删除节点。? curl -XDELETE ‘localhost:9200/index_name/’ 方案二:集群中节点数量=集群中全部索引的最大副本数量 +1。? N = R + 1? 其中:? N——集群中节点的数目;? R——集群中全部索引的最大副本数目。? 学问点:当节点加入和离开集群时,主节点会自动重新安排分片,以确保分片的多个副本不会安排给同一个节点。换句话说,主节点不会将主分片安排给与其副本相同的节点,也不会将同一分片的两个副本安排给同一个节点。? 假如没有足够的节点相应地安排分片,则分片可能会处于未安排形态。? 由于我的集群就一个节点,即N=1;所以R=0,才能满足公式。 问题就转嫁为:? 1)添加节点处理,即N增大;? 2)删除副本分片,即R置为0。? R置为0的方式,可以通过如下命令行实现: root@tyg:/# curl -XPUT http://localhost:9200/_settings -d { ?number_of_replicas : 0 } {acknowledged:true} 方案三:allocate重新安排分片。? 假如方案二仍旧未处理,可以考虑重新安排分片。 可能的缘由: 1)节点在重新启动时可能遇到问题。正常情况下,当一个节点恢复与群集的连接时,它会将有关其分片的信息转发给主节点,然后主节点将这分片从“未安排”转换为“已安排/已启动”。 2)当由于某种缘由(例如节点的存储已被损坏)导致该进程失败时,分片可能保持未安排形态。 在这种情况下,您必需打算如何连续:尝试让原始节点恢复并重新加入集群(并且不要强制安排主分片); 或者强制使用Reroute API安排分片并重新索引缺少的数据原始数据源或备份。? 假如您打算安排未安排的主分片,请确保将“allow_primary”:“true”标志添加到恳求中。 ES5.X使用脚本如下: ES2.X及晚期版本,将 allocate_replica改为 allocate,其他不变。 脚本解读:? 步骤1:定位 UNASSIGNED 的节点和分片 curl -s localhost:9200/_cat/shards | fgrep UNASSIGNED 步骤2:通过 allocate_replica 将 UNASSIGNED的分片重新安排。 8、核心学问点 1)路由? 原理很简约,把每个用户的数据都索引到一个独立分片中,在查询时只查询那个用户的分片。这时就需要使用路由。? 使用路由优势:路由是优化集群的一个很强大的机制。? 它能让我们依据应用程序的规律来部署文档, 从而可以用更少的资源构建更快速的查询。 2)在索引过程中使用路由? 我们可以通过路由来把握 ElasticSearch 将文档发送到哪个分片。? 路由参数值无关紧要,可以取任何值。重要的

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档