为了elastic时时提供服务,需要elastic至少状态维持在yellow状态。所有,维护时需要依次对elastic单个节点进行维护。

操作步骤如下:

1.停止elastic的自动分配功能

curl -XPUT 192.168.1.1:9200/_cluster/settings -d'
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}'

2.关闭需要维护的elastic节点,进行维护

cd elastic-2.3.5
bin/server/elasticsearch stop

3.开启需要维护的elastic节点服务,等待节点加入集群

【等待节点加入集群再开启自动分配是为了防止未分配的分片重新分配到其他节点,占用大量节点带宽,而且大大增加分配所需时间】

cd elastic-2.3.5
bin/server/elasticsearch start
#查看节点是否加入集群
watch -n 5 "curl 192.168.1.1:9200/_cat/allocation?v 2>/dev/null"

4.开启elastic的自动分配功能

curl -XPUT 192.168.1.1:9200/_cluster/settings -d'
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}'

5.等待集群自动分配完成【索引越大,自动分配完成需要的时间越长】

#查看集群是否分配完成,等待集群分配完成
watch -n 5 "curl 192.168.1.1:9200/_cat/allocation?v 2>/dev/null"
#查看UNASSIGNED的分片,分片全部分配完后,继续下一步操作
watch -n 5 "curl 192.168.1.1:9200/_cat/shards?v 2>/dev/null|grep NASSIGNED"

6.集群自动分配完成后,重复1-5操作,维护其他elastic节点。


如果第五步自动分配时间特别长,可以使用手动分配命令进行操作,自动分配脚本如下:

#停机维护的节点名称
NODE="real138"
#集群master节点IP
MASTER_IP="192.168.1.1"
#更改默认分割符为换行符
IFS=$'\n'
#对未分配的主节点进行手动分配
for line in $(curl "$MASTER_IP:9200/_cat/shards" 2>/dev/null | grep "UNASSIGNED" | grep " p ")
do
INDEX=$(echo $line | (awk '{print $1}'))
SHARD=$(echo $line | (awk '{print $2}')) curl -XPOST '10.16.28.136:9200/_cluster/reroute' -d '{
"commands": [
{
"allocate": {
"index": "'$INDEX'",
"shard": "'$SHARD'",
"node": "'$NODE'",
"allow_primary": true
}
}
]
}'
done

  

elastic集群单节点停机维护的更多相关文章

  1. Vertica集群单节点宕机恢复方法

    Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...

  2. 【Zookeeper】Zookeeper集群单节点提供服务

    以下只在特殊情况下使用,不要用在生产环境. 一.问题背景 公司的产品使用Zookeeper做为集群支持,但是客户在验收的时候提出了一个很为难人的要求,那就是3台集群服务,停止2台以后,还要求我们的应用 ...

  3. Elastic search集群新增节点(同一个集群,同一台物理机,基于ES 7.4)

    一开始,在电脑上同一个集群新增节点(node)怎么试也不成功,官网guide又语焉不详?集群健康值yellow(表示主分片全部可用,部分复制分片不可用) 最后,在stackoverflow上找到了答案 ...

  4. VMware workstation虚拟集群实践(1)—— 配置集群多节点互信

    一. 简述 节点互信,是集群管理的基本操作之一.节点互信是通过SSH协议的公钥密钥认证来代替密码认证来实现的.对于单点批量管理多个节点,多个节点之间相互通信来说,配置SSH单方向信任,或者互信十分必要 ...

  5. 刨根问底 | Elasticsearch 5.X集群多节点角色配置深入详解【转】

    转自:https://blog.csdn.net/laoyang360/article/details/78290484 1.问题引出 ES5.X节点类型多了ingest节点类型. 针对3个节点.5个 ...

  6. Elasticsearch核心技术(2)--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)

    Elasticsearch核心技术(2)--- 基本概念 这篇博客讲到基本概念包括: Index.Type.Document.集群,节点,分片及副本,倒排索引. 一.Index.Type.Docume ...

  7. Akka 集群单例Cluster Singleton

    一.简介 集群中Cluster Singleton 集群中有而只一个单例,可应用于集群全局调控,单一运算决策,中央命名服务或中央路由等应用场景 二.依赖 dependencies { compile ...

  8. Elasticsearch-02-入门:集群、节点、分片、索引及常用API

    2. 基础入门 2.1 重要概念 2.1.1 集群和节点 1)cluster Elasticsearch集群是由一个或多个节点组成,通过其集群名称来进行唯一标识.节点在搜索到集群之后,通过判断自身的 ...

  9. 全网最新的nacos 2.1.0集群多节点部署教程

    原文链接:全网最新的nacos 2.1.0集群多节点部署教程-语雀 基本信息 进度整理中 版本 2.1.0 版本发布日期 2022-04-29 git revision number b5845313 ...

随机推荐

  1. mac下面有epoll?

    没有的,但是mac下面有kqueue,跟epoll原理是差不多的. 这个是没办法的,如果实在需要,就用Ubuntu吧,这个也可以无缝迁移. 更多资源,更多文章由小白技术社提供(是我啦)

  2. 再见 Spring Boot 1.X ,Spring Boot 2.X 走向舞台中心

    2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束. 其实早在2018年7月30号,Spring 官方就已经 ...

  3. Python面试总结篇

    Python Coding Interview Questions and Answers 面试题一:逻辑运算赋值 v1 = 1 or 9 v2 = 0 or 9 # print(v1, v2)会输出 ...

  4. Maven项目添加ojdbc8

    1.找到Oracle中的ojdbc8,它的位置在Oracle客户端 2.找到它的位置后,把你放ojdbc8的位置复制,改如下代码"D:\ojdbc8.jar"为你的ojdbc8位置 ...

  5. 常用Linux备份

    用于备份的Tar 备份工具Tar是以前备份文件的可靠方法,几乎可以工作于任何环境中,Linux老用户一般都信赖它. Linux中以.tar结尾的文件都是用tar创建的.它的使用超出了单纯的备份,可用来 ...

  6. 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇

    概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...

  7. Delphi - 创建text文件并添加数据到文件中

    创建文本文件 代码如下: //创建一个文本文件 procedure CreateTextFile(); var AssignFile(TF,'C:\tmp\1.txt'); ReWrite(TF); ...

  8. 大型互联网公司分布式ID方案总结

    ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并 ...

  9. POJ-1325 Machine Schedule 二分图匹配 最小点覆盖问题

    POJ-1325 题意: 有两台机器A,B,分别有n,m种模式,初始都在0模式,现在有k项任务,每项任务要求A或者B调到对应的模式才能完成.问最少要给机器A,B调多少次模式可以完成任务. 思路: 相当 ...

  10. manacher --- 暂 旧版本

    #include<bits/stdc++.h> using namespace std; ; ]; int n; ]; void manacher() { memset(len, , si ...