ES集群节点的扩容缩容案例

1.在集群中添加和删除节点

  当您启动Elasticsearch实例时,您正在启动一个节点。Elasticsearch集群是一组具有相同cluster.name属性的节点。当节点加入或离开集群时,集群会自动重新组织自己,以便在可用节点之间均匀地分布数据。

  如果您正在运行单个Elasticsearch实例,则您拥有一个节点集群。所有主分片驻留在单个节点上。不能分配复制分片,因此集群状态保持为黄色。集群功能完整,但在发生故障时存在数据丢失的风险。

  通过增加集群内的节点,可以提高集群的容量和可靠性。默认情况下,节点也是数据节点,也可以被选为控制集群的主节点。您还可以为特定目配置新节点,例如处理接收请求。

  当您向集群添加更多节点时,它会自动分配副本分片。当所有主分片和副本分片都处于活动状态时,集群状态变为绿色。

  您可以在本地机器上运行多个节点,以试验由多个节点组成的Elasticsearch集群的行为。
  要将一个节点添加到本地机器上运行的集群中:

  1. 设置一个新的 Elasticsearch 实例
  2. 使用 elasticsearch.yml 中的 cluster.name 设置指定集群的名称
  3. 启动 Elasticsearch,节点自动发现并加入指定的集群

  要将节点添加到运行在多台机器的集群上,您必须设置discovery.seed_hosts,以至于新的节点可以发现集群的其他信息

2 扩容数据节点

  

  2.1 当ES集群存储或者计算资源不够了,我们需要对数据节点进行扩容:

step 1.安装elasticsearch节点
       step 2.修改配置文件

  

#与需要扩容的集群保持一致
cluster.name: es-cluster
node.name: es2
node.attr.rack: r1
node.master: false
node.data: true
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.246.104.17
discovery.seed_hosts: ["10.246.104.116", "10.246.104.117", "10.246.104.118", "10.246.104.136", "10.246.104.137", "10.246.105.75", "10.246.105.76", "10.246.104.17", "10.246.104.19"] #填写的es节点
cluster.initial_master_nodes: #填写原来的集群的master
- elasticsearch1
- elasticsearch2
- elasticsearch3
bootstrap.system_call_filter: false
node.attr.box_type: hot
indices.fielddata.cache.size: 20%

注意:在修改配置文件期间,不能够启动elasticsearch,否则可能会导致与原有的集群uuid不一致导致无法加入到集群这时候需要删除elasticsearch的data数据

2.2 启动节点

  这时候节点会自动加入集群并且自动进行rebalance

2.3 查看节点是否已经正常加入了

curl -s -XGET "http://es_host:9200/_cat/nodes?v"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.246.104.118 36 99 2 0.11 0.15 0.21 dim - elasticsearch3
10.246.104.117 22 99 2 0.45 0.46 0.49 dim * elasticsearch2
10.246.104.116 21 99 1 0.27 0.31 0.31 dim - elasticsearch1
10.246.105.76 37 99 1 4.50 7.33 8.08 di - es_stale2
10.246.104.19 52 98 0 0.06 0.18 0.22 di - es1
10.246.104.137 18 99 0 0.43 0.29 0.29 di - es_hot2
10.246.104.136 57 99 2 0.26 0.47 0.46 di - es_hot1
10.246.104.17 66 98 3 0.18 0.13 0.10 di - es2
10.246.105.75 58 99 1 2.49 2.30 1.93 di - es_stale1

节点已经成功加入集群

3 缩容数据节点

  3.1 获取需要缩容的节点信息

  

[root@elasticsearch-01 ~]# curl -s -XGET "http://es-host:9200/_cat/nodes?v"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
11.96.55.7 50 9 0 0.05 0.03 0.06 cdfhilrstw - elasticsearch-04
11.96.55.7 18 9 0 0.05 0.03 0.06 cdfhilmrstw * elasticsearch-01
11.96.55.7 24 9 0 0.05 0.03 0.06 cdfhilmrstw - elasticsearch-02
11.96.55.7 53 9 0 0.05 0.03 0.06 cdfhilmrstw - elasticsearch-03
[root@elasticsearch-01 ~]#

  3.2 将节点从集群路由策略中排除

curl -X PUT "es-host:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
"transient" : {
"cluster.routing.allocation.exclude._name" : "elasticsearch-04"
}
}
'
{"acknowledged":true,"persistent":{},"transient":{"cluster":{"routing":{"allocation":{"exclude":{"_name":"elasticsearch-04"}}}}}}

  3.3 等待该节点上的数据全部迁移完成后

[root@elasticsearch-01 ~]# curl -s -XGET "http://elasticsearch-01:9201/_cat/allocation?v"
shards disk.indices disk.used disk.avail disk.total disk.percent host ip node
0 0b 517.2mb 43.6tb 43.6tb 0 11.96.55.7 11.96.55.7 elasticsearch-01
0 0b 517.2mb 43.6tb 43.6tb 0 11.96.55.7 11.96.55.7 elasticsearch-02
0 0b 517.2mb 43.6tb 43.6tb 0 11.96.55.7 11.96.55.7 elasticsearch-03
[root@elasticsearch-01 ~]#

  3.4 节点就可安全下线

  3.5 查看集群健康状态

参考:

http://dbaselife.com/project-16/doc-895/

ES集群的扩缩容的更多相关文章

  1. Airbnb的动态kubernetes集群扩缩容

    Airbnb的动态kubernetes集群扩缩容 本文介绍了Airbnb的集群扩缩容的演化历史,以及当前是如何通过Cluster Autoscaler 实现自定义扩展器的.最重要的经验就是Airbnb ...

  2. 教你在Kubernetes中快速部署ES集群

    摘要:ES集群是进行大数据存储和分析,快速检索的利器,本文简述了ES的集群架构,并提供了在Kubernetes中快速部署ES集群的样例:对ES集群的监控运维工具进行了介绍,并提供了部分问题定位经验,最 ...

  3. Docker Swarm(七)Scale 扩(缩)容服务

    扩(缩)容服务 扩容服务 Service还提供了复制(类似kubernetes里的副本)功能.可以通过 docker service scale 命令来设置服务中容器的副本数: docker serv ...

  4. 从零入门 Serverless | Serverless Kubernetes 应用部署及扩缩容

    作者 | 邓青琳(轻零) 阿里云技术专家 导读:本文分为三个部分,首先给大家演示 Serverless Kubernetes 集群的创建和业务应用的部署,其次介绍 Serverless Kuberne ...

  5. Kubernetes 监控:Prometheus Adpater =》自定义指标扩缩容

    使用 Kubernetes 进行容器编排的主要优点之一是,它可以非常轻松地对我们的应用程序进行水平扩展.Pod 水平自动缩放(HPA)可以根据 CPU 和内存使用量来扩展应用,前面讲解的 HPA 章节 ...

  6. 三十三、HPA实现自动扩缩容

    通过HPA实现业务应用的动态扩缩容 HPA控制器介绍 当系统资源过高的时候,我们可以使用如下命令来实现 Pod 的扩缩容功能 $ kubectl -n luffy scale deployment m ...

  7. Kubernetes的垂直和水平扩缩容的性能评估

    Kubernetes的垂直和水平扩缩容的性能评估 译自:Performance evaluation of the autoscaling strategies vertical and horizo ...

  8. Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler

    Knative Serving 默认情况下,提供了开箱即用的快速.基于请求的自动扩缩容功能 - Knative Pod Autoscaler(KPA).下面带你体验如何在 Knative 中玩转 Au ...

  9. 生产调优4 HDFS-集群扩容及缩容(含服务器间数据均衡)

    目录 HDFS-集群扩容及缩容 添加白名单 配置白名单的步骤 二次配置白名单 增加新服务器 需求 环境准备 服役新节点具体步骤 问题1 服务器间数据均衡 问题2 105是怎么关联到集群的 服务器间数据 ...

  10. ES 集群调整、升级 最佳实践

    日常应用中我们会经常对es 集群做一些参数调整或者升级版本,但是每次关闭节点再打开 其中的数据同步的痛苦估计有很多人领悟过(有可能出现IO或者网络拥堵导致恶性循环)官网有套方案可以尝试一下: 1.关掉 ...

随机推荐

  1. 深入了解 Spring Boot 核心特性、注解和 Bean 作用域

    Spring Boot 是什么? Spring Boot 是基于 Spring Framework 构建应用程序的框架,Spring Framework 是一个广泛使用的用于构建基于 Java 的企业 ...

  2. Qt 5.12.10 国际化

    网上有资料但是不全,所以这里记录一份比较全的 1.创建项目 2.编辑 demo.cpp 这里写button用来做国际化示例,运行软件后是这个样子 #include "demo.h" ...

  3. Redis Stack功能介绍及redis-om-dotnet使用示例

    为了简化开发人员对较新的 Redis 模块及其提供的功能的体验,同时简化支持其功能的文档和客户端.以帮助开发人员从开始使用 Redis 的那一刻起,就能充分提高工作效率.Redis Stack诞生了. ...

  4. Native API在HarmonyOS应用工程中的使用指导

      HarmonyOS的应用必须用js来桥接native.需要使用ace_napi仓中提供的napi接口来处理js交互.napi提供的接口名与三方Node.js一致,目前支持部分接口,符号表见ace_ ...

  5. C#/.NET/.NET Core拾遗补漏合集(24年4月更新)

    前言 在这个快速发展的技术世界中,时常会有一些重要的知识点.信息或细节被忽略或遗漏.<C#/.NET/.NET Core拾遗补漏>专栏我们将探讨一些可能被忽略或遗漏的重要知识点.信息或细节 ...

  6. javascript现代编程系列教程之X——javascript人工智能

    JavaScript 在人工智能(AI)领域的应用主要体现在以下几个方面: 浏览器端的机器学习:TensorFlow.js 是一个在浏览器中运行的 JavaScript 机器学习库,它允许开发者训练和 ...

  7. kubelet 原理分析

    Reference https://atbug.com/kubelet-source-code-analysis/ kubelet 简介 kubernetes 分为控制面和数据面,kubelet 就是 ...

  8. linux中nginx的https证书过期替换

    linux中nginx的https证书过期替换 工作记录,不然老是忘 一般提示这个就说明过期了 首先把新的证书换上去,最好和之前的文件名字一样,这样就不用改配置文件了 路径就自己找了需要,不过一般挺好 ...

  9. 力扣184(MySQL)-部门工资最高的员工(中等)

    题目: 表: Employee 表: Department 编写SQL查询以查找每个部门中薪资最高的员工.按 任意顺序 返回结果表.查询结果格式如下例所示.  解题思路: 方法一:窗口函数和多表联结 ...

  10. 力扣92(java&python)-反转链表Ⅱ(中等)

    题目: 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 . ...