【ES实战】ES集群节点迁移与缩容

ES集群节点迁移与缩容

【ES实战】ES集群节点迁移与缩容补充说明

master节点迁移

场景一

集群上的master部署情况,一台机器上同时部署了纯master角色和纯data角色的两个ES节点

  1. 申请新机器DEF,为新机器申请域名。
  2. 在新机器DEF上各自部署纯data角色的ES节点,将所有节点的配置文件elasticsearch.yml中的配置项discovery.zen.ping.unicast.hosts修改为ABCDEF。
  3. 将数据迁移到DEF中的数据ES节点中。同时客户端修改链接地址为DEF。
  4. 数据迁移完毕后,关闭一个非active master的ES节点,在DEF中选择一个启动纯master角色的ES节点。
  5. 重复步骤4,直到只剩下active master的ES节点未调整。
  6. 关闭active master的ES节点,启动新机器中的纯master角色的ES节点,新的active master会在DEF中选举产生。
  7. 确认用户客户端链接地址修改完毕后,下线ABC机器。将DEF中ES全部节点的配置文件elasticsearch.yml中的配置项discovery.zen.ping.unicast.hosts修改为DEF。
    在这里插入图片描述

场景二

集群上的master部署情况,机器上的master角色是与data角色混在一个ES节点中

  1. 申请新机器DEF,为新机器申请域名。
  2. 在新机器DEF上各自部署纯data角色的ES节点,将所有节点的配置文件elasticsearch.yml中的配置项discovery.zen.ping.unicast.hosts修改为ABCDEF。
  3. 将数据迁移到DEF中的数据ES节点中。同时客户端修改链接地址为DEF。
  4. 数据迁移完毕后,关闭一个非active master的ES节点,在DEF中选择一个启动纯master角色的ES节点。
  5. 重复步骤4,直到只剩下active master的ES节点未调整。
  6. 关闭active master的ES节点,启动新机器中的纯master角色的ES节点,新的active master会在DEF中选举产生。
  7. 确认用户客户端链接地址修改完毕后,下线ABC机器。将DEF中ES全部节点的配置文件elasticsearch.yml中的配置项discovery.zen.ping.unicast.hosts修改为DEF。
    在这里插入图片描述

场景三

集群上的master部署情况,纯master角色ES节点和纯Data角色ES节点部署在不同的服务器上

  1. 申请新机器GHIJ,为新机器申请域名。
  2. 在新机器GHIJ上各自部署纯data角色的ES节点,将所有节点的配置文件elasticsearch.yml中的配置项discovery.zen.ping.unicast.hosts修改为DEFGHI。
  3. 将数据迁移到GHIJ中的dataES节点中。同时客户端修改链接地址为GHIJ。
  4. 数据迁移完毕后,关闭一个非active master的ES节点,在GHI中选择一个启动纯master角色的ES节点。
  5. 重复步骤4,直到只剩下active master的ES节点未调整。
  6. 关闭active master的ES节点,启动新机器中的纯master角色的ES节点,新的active master会在GHI中选举产生。
  7. 确认用户客户端链接地址修改完毕后,下线ABCM机器。将GHIJ中ES全部节点的配置文件elasticsearch.yml中的配置项discovery.zen.ping.unicast.hosts修改为GHI。
    在这里插入图片描述

data节点迁移

  1. 申请新机器,为新机器申请域名。
  2. 在新机器各自部署纯data角色的ES节点。
  3. 检查是否需要更改ES客户端的链接地址。
  4. 将需要迁移data节点的所有索引数据迁移到新机器。
  5. 下线需要迁移的机器。

数据迁移操作

主要使用配置项cluster.routing.allocation.exclude._ip来实现数据迁移。

1、查询集群原来的配置

检查cluster.routing.allocation.exclude._ip配置项的值,如果没有,说明原来没有排除节点。

curl -X GET "http://{ip}:{port}/_cluster/settings?pretty"
2、清空节点数据

清空数据节点的数据,{ip}:集群任意节点IP,{port}:http服务端口号,{ip1},{ip2}:需要排除数据的IP,将原来配置需要排除数据的节点IP加上本次排除数据的节点IP,以逗号分隔。

curl -X PUT "http://{ip}:{port}/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent" :{
      "cluster.routing.allocation.exclude._ip" : "{ip1},{ip2}"
   }
}'
3、检查是否排空数据

检查数据节点上是否存在数据,结果中的IP列没有需要下线的IP,说明数据已经排尽,满足机器下线条件了。有的集群分片可能很多,可以将结果输出到文件查询。

curl -X GET "http://{ip}:{port}/_cat/shards?v&pretty&s=ip:desc"
index               shard prirep state   docs  store ip            node
config_s-20211108 1     r      STARTED    0   130b 192.168.1.1 es03-prd
config_s-20211108 2     r      STARTED    0   130b 192.168.1.1 es03-prd
config_s-20211108 0     p      STARTED    0   130b 192.168.1.1 es03-prd
.monitoring-data-2  0     r      STARTED    5 15.7kb 192.168.1.1 es03-prd
config_s-20211107 1     r      STARTED    0   130b 192.168.1.1 es03-prd
config_s-20211107 2     r      STARTED    0   130b 192.168.1.1 es03-prd
config_s-20211107 0     p      STARTED    0   130b 192.168.1.1 es03-prd

迁移原则

  • 清理集群中的过期索引与过期数据
  • 优先扩容data角色的节点,迁移集群中的数据
  • 确认客户端的链接地址不是要下线的机器
  • 迁移非active的master角色的节点
  • 切主,将active的master节点进行关闭,在新master角色的节点中完成新的active master选主。
  • 刷新集群上的相关配置
  • 在确认所有事项之后,才能下线旧机器

缩容前置检查项

  1. index的副本分片数量的合理性

    副本数 + 1 ≤ +1\leq +1data角色的节点数

  2. 单个ES数据节点的分片数量的合理性

    官方的默认值是每个数据节点的分片数 ≤ \leq 1000,

    https://www.elastic.co/guide/en/elasticsearch/reference/6.7/misc-cluster.html#cluster-shard-limit

  3. 大分片的数量
    在这里插入图片描述

  4. 数据生命周期的调整

  5. 单机器多数据节点的 cluster.routing.allocation.same_shard.host 配置的调整,最佳为true。

    允许执行检查,以防止基于主机名和主机地址在单个主机上分配同一分片的多个实例。 默认为false,表示默认情况下不执行任何检查。 仅当在同一台计算机上启动多个节点时,此设置才适用。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
前言 第1章 Elasticsearch入门 1 1.1 Elasticsearch是什么 1 1.1.1 Elasticsearch的历史 2 1.1.2 相关产品 3 1.2 全文搜索 3 1.2.1 Lucene介绍 4 1.2.2 Lucene倒排索引 4 1.3 基础知识 6 1.3.1 Elasticsearch术语及概念 6 1.3.2 JSON介绍 10 1.4 安装配置 12 1.4.1 安装Java 12 1.4.2 安装Elasticsearch 12 1.4.3 配置 13 1.4.4 运行 15 1.4.5 停止 17 1.4.6 作为服务 17 1.4.7 版本升级 19 1.5 对外接口 21 1.5.1 API约定 22 1.5 .2 REST介绍 25 1.5.3 Head插件安装 26 1.5.4 创建库 27 1.5.5 插入数据 28 1.5.6 修改文档 28 1.5.7 查询文档 29 1.5.8 删除文档 29 1.5.9 删除库 30 1.6 Java接口 30 1.6.1 Java接口说明 30 1.6.2 创建索引文档 33 1.6.3 增加文档 34 1.6.4 修改文档 35 1.6.5 查询文档 35 1.6.6 删除文档 35 1.7 小结 36 第2章 索引 37 2.1 索引管理 37 2.1.1 创建索引 37 2.1.2 删除索引 39 2.1.3 获取索引 39 2.1.4 打开/关闭索引 40 2.2 索引映射管理 41 2.2.1 增加映射 41 2.2.2 获取映射 44 2.2.3 获取字段映射 45 2.2.4 判断类型是否存在 46 2.3 索引别名 46 2.4 索引配置 51 2.4.1 更新索引配置 51 2.4.2 获取配置 52 2.4.3 索引分析 52 2.4.4 索引模板 54 2.4.5 复制配置 55 2.4.6 重建索引 56 2.5 索引监控 60 2.5.1 索引统计 60 2.5.2 索引分片 62 2.5.3 索引恢复 63 2.5.4 索引分片存储 64 2.6 状态管理 64 2.6.1 清除缓存 64 2.6.2 索引刷新 64 2.6.3 冲洗 65 2.6.4 合并索引 65 2.7 文档管理 66 2.7.1 增加文档 66 2.7.2 更新删除文档 69 2.7.3 查询文档 73 2.7.4 多文档操作 76 2.7.5 索引词频率 80 2.7.6 查询更新接口 83 2.8 小结 87 第3章 映射 88 3.1 概念 88 3.2 字段数据类型 90 3.2.1 核心数据类型 91 3.2.2 复杂数据类型 96 3.2.3 地理数据类型 100 3.2.4 专门数据类型 106 3.3 元字段 108 3.3.1 _all字段 109 3.3.2 _field_names字段 109 3.3.3 _id字段 110 3.3.4 _index字段 110 3.3.5 _meta字段 111 3.3.6 _parent字段 111 3.3.7 _routing字段 112 3.3.8 _source字段 114 3.3.9 _type字段 115 3.3.10 _uid字段 115 3.4 映射参数 116 3.4.1 analyzer参数 116 3.4.2 boost参数 118 3.4.3 coerce参数 119 3.4.4 copy_to参数 120 3.4.5 doc_values参数 121 3.4.6 dynamic参数 122 3.4.7 enabled参数 122 3.4.8 fielddata参数 123 3.4.9 format参数 126 3.4.10 geohash参数 128 3.4.11 geohash_precision参数 129 3.4.12 geohash_prefix参数 130 3.4.13 ignore_above参数 131 3.4.14 ignore_malformed参数 131 3.4.15 include_in_all参数 132 3.4.16 index参数 133 3.4.17 index_options参数 133 3.4.18 lat_lon参数 134 3.4.19 fields参数 135 3.4.20 norms参数 136 3.4.21 null_value参数 137 3.4.22 position_increment_gap参数 137 3.4.23 precision_step参数 138 3.4.24 properties参数 138 3.4.25 search_analyzer参数 139 3.4.26 similarity参数 140 3.4.27 store参数 141 3.4.28 term_vector参数 141 3.5 动态映射 142 3.5.1 概念 142 3.5.2 _default_映射 143 3.5.3 动态字段映射 143 3.5.4 动态模板 145 3.5.5 重写默认模板 148 3.6 小结 148 第4章 搜索 149 4.1 深入搜索 149 4.1.1 搜索方式 149 4.1.2 重新评分 153 4.1.3 滚动查询请求 155 4.1.4 隐藏内查询 158 4.1.5 搜索相关函数 161 4.1.6 搜索模板 164 4.2 查询DSL 167 4.2.1 查询和过滤的区别 167 4.2.2 全文搜索 168 4.2.3 字段查询 179 4.2.4 复合查询 183 4.2.5 连接查询 188 4.2.6 地理查询 190 4.2.7 跨度查询 197 4.2.8 高亮显示 200 4.3 简化查询 203 4.4 小结 206 第5章 聚合 207 5.1 聚合的分类 207 5.2 度量聚合 209 5.2.1 平均值聚合 209 5.2.2 基数聚合 211 5.2.3 最大值聚合 213 5.2.4 最小值聚合 214 5.2.5 和聚合 214 5.2.6 值计数聚合 215 5.2.7 统计聚合 215 5.2.8 百分比聚合 215 5.2.9 百分比分级聚合 216 5.2.10 最高命中排行聚合 217 5.2.11 脚本度量聚合 217 5.2.12 地理边界聚合 221 5.2.13 地理重心聚合 222 5.3 分组聚合 223 5.3.1 子聚合 224 5.3.2 直方图聚合 226 5.3.3 日期直方图聚合 230 5.3.4 时间范围聚合 233 5.3.5 范围聚合 234 5.3.6 过滤聚合 235 5.3.7 多重过滤聚合 236 5.3.8 空值聚合 238 5.3.9 嵌套聚合 239 5.3.10 采样聚合 240 5.3.11 重要索引词聚合 242 5.3.12 索引词聚合 245 5.3.13 总体聚合 251 5.3.14 地理点距离聚合 251 5.3.15 地理散列网格聚合 253 5.3.16 IPv4范围聚合 255 5.4 管道聚合 257 5.4.1 平均分组聚合 259 5.4.2 移动平均聚合 261 5.4.3 总和分组聚合 262 5.4.4 总和累计聚合 262 5.4.5 最大分组聚合 264 5.4.6 最小分组聚合 265 5.4.7 统计分组聚合 266 5.4.8 百分位分组聚合 268 5.4.9 差值聚合 269 5.4.10 分组脚本聚合 273 5.4.11 串行差分聚合 275 5.4.12 分组选择器聚合 276 5.5 小结 277 第6章 集群管理 278 6.1 集群节点监控 278 6.1.1 集群健康值 278 6.1.2 集群状态 279 6.1.3 集群统计 280 6.1.4 集群任务管理 280 6.1.5 待定集群任务 281 6.1.6 节点信息 281 6.1.7 节点统计 282 6.2 集群分片迁移 283 6.3 集群节点配置 284 6.3.1 主节点 285 6.3.2 数据节点 286 6.3.3 客户端节点 286 6.3.4 部落节点 287 6.4 节点发现 287 6.4.1 主节点选举 288 6.4.2 故障检测 288 6.5 集群平衡配置 289 6.5.1 分片分配设置 289 6.5.2 基于磁盘的配置 290 6.5.3 分片智能分配 291 6.5.4 分片配置过滤 292 6.5.5 其他集群配置 293 6.6 小结 293 第7章 索引分词器 294 7.1 分词器的概念 294 7.2 中文分词器 298 7.3 插件 300 7.3.1 插件管理 301 7.3.2 插件安装 301 7.3.3 插件清单 302 7.4 小结 304 第8章 高级配置 305 8.1 网络相关配置 305 8.1.1 本地网关配置 305 8.1.2 HTTP配置 306 8.1.3 网络配置 307 8.1.4 传输配置 308 8.2 脚本配置 310 8.2.1 脚本使用 311 8.2.2 脚本配置 313 8.3 快照和恢复配置 318 8.4 线程池配置 324 8.5 索引配置 326 8.5.1 缓存配置 326 8.5.2 索引碎片分配 329 8.5.3 合并 332 8.5.4 相似模块 332 8.5.5 响应慢日志监控 333 8.5.6 存储 335 8.5.7 事务日志 336 8.6 小结 337 第9章 告警、监控和权限管理 338 9.1 告警 338 9.1.1 安装 338 9.1.2 结构 339 9.1.3 示例 352 9.1.4 告警输出配置 354 9.1.5 告警管理 355 9.2 监控 356 9.2.1 安装 356 9.2.2 配置 357 9.3 权限管理 360 9.3.1 工作原理 361 9.3.2 用户认证 361 9.3.3 角色管理 366 9.3.4 综合示例 368 9.4 小结 369 第10章 ELK应用 370 10.1 Logstash 370 10.1.1 配置 371 10.1.2 插件管理 374 10.2 Kibana配置 377 10.2.1 Discover 379 10.2.2 Visualize 381 10.2.3 Dashboard 383 10.2.4 Settings 386 10.3 综合示例 387 10.4 小结 390 附录 Elasticsearch 5.0的特性与改进 391

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值