1.概述

转载:ELASTICSEARCH集群节点的扩容(移除与添加)

0x01 前言

我的elasticsearch集群在刚建立之初只是想用于测试,所以每个节点只有300G的磁盘空间。但后来用在我自己业务的日志分析,磁盘空间则越来越小,最后不得不计划磁盘扩容的工作。

elasticsearch磁盘扩容非常简单,只需要将node中的分片迁移出去,然后从集群中剔除该node,重新安装系统和部署elasticsearch后即可重新加入集群。

为什么要那么麻烦?因为我家里服务器的资源有限,而且虚拟机的mac地址已经配置到路由器中,更改起来比较麻烦,所以只能通过该办法实现扩容。

0x02 准备

在开始之前得先确认集群的一些情况,首先要确认现在集群中节点的数量,比如我的:

GET /_cat/nodes

如果你有安装x-pack,也可以通过monitor查看相关状态:

默认情况下,集群各个节点中的分片数量都是相等的,有且只有一个master node。如果你的集群不可中断,则不建议参考本文进行扩容工作。为此,建议参考以下文档进行配置:

Avoiding split brain with minimum_master_nodesedit

简单来说,elasticsearch为了防止脑裂情况的发生而导致数据丢失,建议使用以下公式计算最小master node的数量:

(master_eligible_nodes / 2) + 1

比如我的集群中有4个节点,则master node建议为2个。在此情况下,发生脑裂的几率会大大降低。

还有一个需要注意的点是:在扩容的过程中,请确保节点数不要小于扩容前的节点数。为此,建议大家在开始前添加一个node,扩容结束后删除即可。

0x03 迁移、扩容与加入

其实我的elasticsearch集群在一开始只有3个节点,其中一个为master,上图中的node4其实是扩容完成后保留下来的。

数据迁移与扩容得一个一个节点操作,切勿同时操作多个节点。首先明确需要迁移的节点的IP地址,然后在kibana的console中执行以下命令:

PUT _cluster/settings
{"transient" : {"cluster.routing.allocation.exclude._ip" : "10.0.0.1"}
}

当然,你也可以在master node的系统下执行以下命令:

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{"transient" : {"cluster.routing.allocation.exclude._ip" : "10.0.0.1"}
}
'

执行以上命令后会将10.0.0.1这个IP地址的node从集群中剔除,而该集群中的分片会立即迁移至其他node,直至该node中的分片数量为0。

耐心等待后即可通过以下命令检查node中的分片数量:

GET /_cat/allocation?v

或者在master node中通过curl检查:

curl -X GET "localhost:9200/_cat/allocation?v"

确认分片数量为0后,即可登入到需要扩容节点的系统中停止elasticsearch服务并关机。然后实施重装系统或挂载磁盘等操作,完成后重新启动elasticsearch服务即可。

node重新加入集群后并不会自动同步分片,因为上面已经将它的IP剔除了,此时需要执行以下命令将其加入其中:

# kibana console
PUT _cluster/settings
{"transient" : {"cluster.routing.allocation.exclude._ip" : "10.0.0.1"}
}# curl
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{"transient" : {"cluster.routing.allocation.include._ip" : "10.0.0.*"}
}
'

同步完成后再重复以上步骤即可。

最后需要提醒的是,如果你只有一个master node,当集群中的node小于3时,会导致集群脑裂,从而使elasticsearch拒绝服务。

0x04 解语

这次扩容花掉了我一整天的时间,因为计算和存储资源的匮乏限制了我集群中node的数量,而elasticsearch倒腾数据需要的时间又非常长,所以在有极其庞大数据的时候建议增加node数量,可以同时扩容多个node。

当有一个node从集群中离线时会出现Unassigned Shards,直至新node加入并恢复(recovery),而默认情况下,恢复的速度被限制在40mbps。如果你的网络和磁盘IO都支持更高的速度,则可以通过以下命令对该参数进行调整:

# kibana console
PUT /_cluster/settings
{"persistent" : {"indices.recovery.max_bytes_per_sec" : "100mb"}
}# curl
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{"persistent" : {"indices.recovery.max_bytes_per_sec" : "100mb"}
}
'

【Elasticsearch】ELASTICSEARCH集群节点的扩容(移除与添加)相关推荐

  1. zookeeper集群节点热扩容和迁移详解

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  2. GBase 8a 集群节点管理-扩容(多VC模式)

    概述 GBase 8a MPP Cluster 支持集群扩容.集群缩容.集群节点替换等功能,满足在集群运行过程中需要存储的数据增加导致数据存储空间不足,长时间运行导致单节点硬件故障,整体集群需要进行硬 ...

  3. 达梦dsc集群节点在线扩容

    文章目录 前言 一.导出DCR配置文件(export dmdcr_cfg) 二.为新增节点添加日志文件 三.配置DMCSSM监视器 四.配置新增节点DSC2 4.1拷贝配置文件至新节点服务器上 4.2 ...

  4. redis专题:redis集群的动态扩容缩容,水平扩展

    文章目录 1. 扩容背景介绍 2. redis集群扩容 2.1 增加redis实例 2.2 配置8007为master节点 2.3 配置8008为8007的从节点 3. redis集群缩容 3.1 先 ...

  5. db2 数据库配置HADR+TSA添加集群节点

    Db2配置HADR高可用+TSA添加集群节点 一.服务器资源 Master IP:10.78.10.1 数据库:dbclass Slave IP:10.78.10.2 数据库:dbclass VIP: ...

  6. 集群节点Elasticsearch升级

    集群节点Elasticsearch升级 操作流程 1.首先执行Elasticsearch-1.2.2集群的索引数据备份 2.关闭elasticsearch-1.2.2集群的recovery.compr ...

  7. Elasticsearch+Kibana集群部署(3节点)

    Elasticsearch+Kibana集群部署(3节点) l i n d o r − − 良民笔记 lindor--良民笔记 lindor−−良民笔记 文章目录 Elasticsearch+Kiba ...

  8. ElasticSearch之集群原理

    ElasticSearch 的主旨是随时可用和按需扩容. 而扩容可以通过购买性能更强大(垂直扩容,或 纵向扩容) 或者数量更多的服务器(水平扩容,或 横向扩容 )来实现. 虽然 ElasticSear ...

  9. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群

    笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...

最新文章

  1. How to use kingshard building a MySQL cluster
  2. html表单输入的文本框的值,网页设计关于表单输入框的技巧代码
  3. java中rtsp转m3u8_记录:通过ffmpeg rtsp转 http m3u8
  4. Unity+SenseAR教程:用手势发射爱心【源码】
  5. promise用法_JavaScript中的async/await的用法和理解
  6. UVA545 LA5263 Heads【对数】
  7. Django表中的字段
  8. mifare classic 2.2.3中文_西班牙人为什么学中文?他们是这么说的……
  9. 拓端tecdat:R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据
  10. 基于ARM的SoC设计入门
  11. macOS远程管理linux,MacOS远程控制工具
  12. playm3u8插件android,playm3u8播放器
  13. acrobat PDF删除部分_PDF文件如何删除部分内容?
  14. 新pop账户服务器信息,添加 POP 账户
  15. excel 序号下拉不能够自动(递增)排序
  16. 深扒:基于UEBA的数据使用安全防护
  17. 高手是怎样炼成的:精妙SQL语句介绍
  18. 教你快速删除或/替换每个视频文件名中的空格、特殊符号
  19. 最新弹幕播放器源码/支持对接苹果+蓝光接口API
  20. VUE项目学习(二):学习项目文件结构

热门文章

  1. 微信支付亲属卡新增“其他亲人”选项 “子女”增加至三张
  2. 三年前赚走马云665亿的外卖小哥,现在怎么样了?
  3. 字节跳动入局外卖赛道 美团饿了么怕了吗?
  4. 10元/小时?大涨价后,共享充电宝行业迎来“大地震”!
  5. 苹果折叠iPhone终于有动作了!已送样至富士康,售价将超万元
  6. 雷军晒十多年前的手机:支持无线充电、内置8GB存储
  7. 大涨50%之后 瑞幸咖啡美股盘前再涨逾30%
  8. 金山云和金山办公均成功上市 雷军揭秘背后原因
  9. 小米10“被迫性价比”,雷军回应......
  10. 终止一切网上销售和广告?电子烟悦刻天猫旗舰店却仍可购买