带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(10)

简介: 带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(10)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(9) https://developer.aliyun.com/article/1231272


定义 ILM 策略,其中包含 4 个生命周期阶段:

 

l Hot 阶段:将索引优先级设置为一个较高的值 100,以便节点在恢复运行后(例如重启)在Hot 阶段的索引能够在 Warm 和 Cold 阶段的索引之前恢复。当索引主分片文档数达到 5个或者索引主分片总容量达到 5MB 时,rollover 滚动更新索引。

l Warm 阶段:20s 后索引进入 Warm 阶段,将索引收缩到 1 个主分片,强制合并为 1 个段,并将索引的优先级调低为 50,然后通过 allocate 操作将索引移动到 Warm 节点。

l Cold 阶段:40s 后索引是进入 Cold 阶段,将索引的优先级调为最低值 0,并设置索引为只读状态,然后通过 allocate 操作将索引移动到 Cold 节点。

l Delete 阶段:60s 后删除该索引。


PUT _ilm/policy/hot-warm-ilm
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size":"5mb",
            "max_docs": "5"
          },
          "set_priority": {
            "priority":100
          }
        }
      },
      "warm": {
        "min_age":"20s",
        "actions": {
          "forcemerge": {
            "max_num_segments":1
          },
          "shrink": {
            "number_of_shards":1
          },
          "allocate": {
            "include": {
              "data": "warm"
            }
          },
          "set_priority": {
            "priority":50
          }
        }
      },
      "cold": {
        "min_age":"40s",
        "actions": {
          "set_priority": {
            "priority":0
          },
          "readonly": {},
          "allocate": {
            "include": {
              "data": "cold"
            }
          }
        }
      },
      "delete": {
        "min_age":"60s",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

ECK 在创建 Elasticsearch 集群时,会根据我们指定的属性为节点添加属性,例如 node.attr.data: hot,我们后续就可以通过 node.attr.data 来区分冷热节点。属性名是可以自己定义的,比如还可以叫 node.attr.my-data。

 

定义一个索引模板,所有通配符匹配 hot-warm-index* 的索引,都会应用该模板的规则。该索引模板调用了刚刚创建的 ILM 策略,并且将新索引分配到 Hot 节点上,主分片数设置为 3,副本分片为 1。当索引触发 rollover 滚动更新新的索引时,以 hot-warm-index 作为别名。


PUT /_template/hot-warm-index-template
{
  "index_patterns" : [
      "hot-warm-index*"
    ],
    "settings" : {
      "index" : {
        "lifecycle" : {
          "name" : "hot-warm-ilm",
          "rollover_alias" : "hot-warm-index"
        },
        "routing" : {
          "allocation" : {
            "include" : {
              "data" : "hot"
            }
          }
        },
        "number_of_shards" : 3,
        "number_of_replicas": 1
      }
    }
}


为 hot-warm-index 别名创建第一个索引 hot-warm-index-000001,后续在 rollover 滚动更新索引时,索引名会根据最后的序号递增,例如 hot-warm-index-000002、hot-warm-index-000003、hot-warm-index-000004 ...。指定第一个索引分配到 Hot 节点上,索引别名为 hot-warm-index。一个别名中的所有索引只能有一个索引可以写入数据,"is_write_index": true自动设置最新滚动更新的索引可写。

 

PUT hot-warm-index-000001
{
  "aliases": {
    "hot-warm-index": {
      "is_write_index": true 
    }
  }
}

往索引中插入 5 条数据。


POST _bulk
{"index":{"_index":"hot-warm-index"}}
{"name":"Erlend","age":16}
{"index":{"_index":"hot-warm-index"}}
{"name":"Brynjar","age":18}
{"index":{"_index":"hot-warm-index"}}
{"name":"Fox","age":18}
{"index":{"_index":"hot-warm-index"}}
{"name":"Frank","age":23}
{"index":{"_index":"hot-warm-index"}}
{"name":"Sam","age":18}

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(11) https://developer.aliyun.com/article/1231270

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
并行计算 Linux Docker
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
1588 0
|
存储 缓存 自然语言处理
Elasticsearch 内存占用分析及 page cache 监控
Elasticsearch 内存占用相关知识,以及对 lucene 文件的 page cache 进行监控
4692 6
|
10月前
|
Kubernetes 调度 异构计算
Kubernetes集群中,部分使用GPU资源的Pod出现UnexpectedAdmissionError问题的解决方案。
如果在进行上述检查之后,问题依然存在,可以尝试创建一个最小化的Pod配置,仅请求GPU资源而不
648 5
|
Kubernetes 算法 NoSQL
动态扩缩容下的全局流水号设计
该文介绍了在动态扩缩容场景下如何使用雪花算法生成全局流水号。雪花算法生成的ID由时间戳、工作机器ID和序列号组成。在K8s环境中,通过Redis存储当前workerId的最大值,每次生成时加1并取模,确保workerId在0-1023范围内。文中提供了实现雪花算法的`SnowflakeIdWorker`类示例,并展示了两种动态获取workerId的方法:一是利用Redis incr操作;二是通过Nacos服务发现获取IP和端口信息计算。此外,还提到了其他获取workId和dataCenterId的策略,如使用本地IP和主机名。
955 1
|
存储 Prometheus 运维
运维面试题库之Prometheus
运维面试题库之Prometheus
5193 1
|
测试技术 Shell 持续交付
提升开发效率之利用GitLab CI/CD打包Android项目
提升开发效率之利用GitLab CI/CD打包Android项目
2066 0
|
开发工具
『全网首发,ES申请永久License』ElasticSearch7申请永久License
『全网首发,ES申请永久License』ElasticSearch7申请永久License
1286 0
|
JavaScript 前端开发 程序员
Vue基本代码和 MVVM 之间对应关系|学习笔记
快速学习Vue基本代码和 MVVM 之间对应关系
235 0
Vue基本代码和 MVVM 之间对应关系|学习笔记
|
存储 搜索推荐 Oracle

热门文章

最新文章