概述:
- 适合日志类型的数据存储方案。即当日数据写入,历史数据只读。
- 节省部分硬件成本。热数据采用更好的硬件。
环境:
已有6个ES节点,使用docker-compose方式搭建。
es1:master节点
# elasticsearch.yml
node.name: "es1"
cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.master: true
node.data: false
es2、es3、es4 热数据节点
# elasticsearch.yml
node.name: "es2" # 提示:自行修改其他节点的名称
cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["es1"]
node.attr.box_type: "hot" # 标识为热数据节点
es5、es6 冷数据节点
# elasticsearch.yml
node.name: "es5-cool" # 提示:自行修改其他节点的名称
cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["es1"]
node.attr.box_type: "cool" # 标识为热数据节点
思路:
- 创建index模板,指定"index.routing.allocation.require.box_type"为"hot"。新建立的index默认放置在热数据节点中存储。
- 修改index中"index.routing.allocation.require.box_type"为"cool",让ES自动迁移数据到冷数据节点中存储。
创建index模板:
PUT /_template/hot_template
{
"index_patterns" : "*", # 匹配所有的索引
"order" : , # 多个模板同时匹配,以order顺序倒排,order越大,优先级越高
"settings" : {
"number_of_shards" : ,
"index.routing.allocation.require.box_type": "hot", # 指定默认为热数据节点
"number_of_replicas":
}
}
提示:如果不想创建index模板,可以在创建index时在setting中指定 "index.routing.allocation.require.box_type": "hot" 配置,效果相同。
创建测试index:
POST /test_index/test
{
"test": "test"
}
查看测试index的settings信息:
GET test_index/_settings
回显如下:
{
"test_index" : {
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"require" : {
"box_type" : "hot" # 默认index模板匹配成功,数据存放在热数据节点
}
}
},
"number_of_shards" : "",
"provided_name" : "test_index",
"creation_date" : "",
"number_of_replicas" : "",
"uuid" : "1q0SM1znRUKknJV6N8iJDQ",
"version" : {
"created" : ""
}
}
}
}
}
数据迁移:
PUT test_index/_settings
{
"settings": {
"index.routing.allocation.require.box_type": "cool" # 指定数据存放到冷数据节点
}
}
ES会自动将 test_index 的数据迁移到冷数据节点上。
提示:更新索引标记的任务可以放到定时任务中去实现。
1. 有x台机器tag设置为hot
2. 有y台机器tag设置为cool
3. hot集群中只存最近两天的.
4. 有一个定时任务每天将前一天的索引标记为cool
5. es看到有新的标记就会将这个索引迁移到冷集群中, 这都是es自动完成的
参考:
https://elasticsearch.cn/article/6127
https://elasticsearch.cn/question/283
数据冷备:
参考:https://www.elastic.co/guide/cn/elasticsearch/guide/current/backing-up-your-cluster.html
PUT _snapshot/my_backup # my_backup 备份的名称
{
"type": "fs",
"settings": {
"location": "/mount/backups/my_backup"
}
}
ES一旦数据被删除无法通过translog进行数据恢复,所以一定要进行数据冷备。
工作随笔——elasticsearch数据冷热分离、数据冷备的更多相关文章
-
工作随笔—Elasticsearch大量数据提交优化
问题:当有大量数据提交到Elasticsearch时,怎么优化处理效率? 回答: 批量提交 当有大量数据提交的时候,建议采用批量提交. 比如在做 ELK 过程中 ,Logstash indexer 提 ...
-
工作随笔——elasticsearch 6.6.1安装(docker-compose方式)
docker-compose.yml: version: '2.2' services: es1: image: docker.elastic.co/elasticsearch/elasticsear ...
-
Elasticsearch7.X ILM索引生命周期管理(冷热分离)
Elasticsearch7.X ILM索引生命周期管理(冷热分离) 一.“索引生命周期管理”概述 Elasticsearch索引生命周期管理指:Elasticsearch从设置.创建.打开.关闭.删 ...
-
es高级用法之冷热分离
背景 用户需求:近期数据查询速度快,较远历史数据运行查询速度慢? 对于开发人员而言即数据的冷热分离,实现此功能有2个前提条件: 硬件:处理速度不同的硬件,最起码有读写速度不同的硬盘,如SSD.机械硬盘 ...
-
ElasticStack系列之二十 &; 数据均衡、迁移、冷热分离以及节点自动发现原理与机制
1. 数据均衡 某个shard分配到哪个节点上,一般来说,是由 ELasticSearch 自行决定的.以下几种情况会触发分配动作: 新索引的建立 索引的删除 新增副本分片 节点增减引发的数据均衡 在 ...
-
用logstash,elasticSearch,kibana实现数据收集和统计分析工作
原文链接:http://www.open-open.com/lib/view/open1448799635720.html 世界上的软件80%是运行在内网的,为了使得运行在客户端的软件有良好的体验,并 ...
-
Elasticsearch使用小结之冷热分离
Elasticsearch使用小结之冷热分离 索引迁移 索引setting中的index.routing.allocation.exclude和index.routing.allocation.inc ...
-
ElasticSearch实战系列十: ElasticSearch冷热分离架构
前言 本文主要介绍ElasticSearch冷热分离架构以及实现. 冷热分离架构介绍 冷热分离是目前ES非常火的一个架构,它充分的利用的集群机器的优劣来实现资源的调度分配.ES集群的索引写入及查询速度 ...
-
让Elasticsearch集群冷热分离、读写分离【转】
转自:https://blog.csdn.net/jiao_fuyou/article/details/50511255 根据Elasticsearch中文社区<ES冷热分离(读写分离) hot ...
随机推荐
-
img的onerror事件(瑕疵+解决办法)【转】
显示图片的时候,为了更好的用户体验,可能会把一些没有图片的内容也用图片样式显示出来,此时我们就要用到IMG的onerror事件了,注意MyEclipse的快捷键alt+/是没有的. < img ...
-
一次受限于操作系统进程数的OOM
在64bit机上跑应用,结果进程刚起来就挂,就刚起来就挂..还OOM,还fork不出新进程,尼玛,这什么情况? 1. 如果是应用层面OOM,那么不应该任何命令都不被执行了,不应该OS直接crash掉. ...
-
InstallShield2008脚本安装制作方法Setup
//=========================================================================== // // File Name: S ...
-
【行为型】Chain of responsibility模式
职责链模式将对象的请求处理组成链式结构,并将请求按链式结构逐个传递下去,直接被其中的某个处理者处理为止.由此可知,职责链模式的适用场合是对指定请求,可以有多个请求处理者(或称为请求响应者),但用户并不 ...
-
拖拽系列一、JavaScript实现简单的拖拽效果
前端拖拽相关应用汇总 在现实生活中就像男孩子牵着(拖着)女朋友的手穿过马路:从马路的一端走到另一端这种场景很常见: 而在前端开发中拖拽效果也算是前端开发中应用最常见.最普遍的特效:其拖拽涉及知 ...
-
Spark算子--countByKey
转载请标明出处http://www.cnblogs.com/haozhengfei/p/1633ffc63e2c925e930adadc9528c830.html countByKey--Actio ...
-
团队作业5-测试与发布(AIpha版本)
对于已完成的项目我们进行了诸多测试,找到了少许bug,对着这些bug我们在改进的基础上提出了新的目标. 1,测试环境:个人笔记本.个人台式机.环境windows7.网络校园网加移动vpn,浏览器360 ...
-
【bzoj4567 scoi2016】 背单词
题目描述 Lweb 面对如山的英语单词,陷入了深深的沉思,”我怎么样才能快点学完,然后去玩三国杀呢?“.这时候睿智的凤老师从远处飘来,他送给了 Lweb 一本计划册和一大缸泡椒,他的计划册是长这样的: ...
-
Word自定义多级列表样式
Word自定义多级列表样式: 1. 2. 3.取个名字 在这里鼠标移上时显示 : 4. 5. 定义完成,即可使用:
-
topcoder srm 712 div1
problem1 link 将$a_{0},a_{1},...,a_{n-1}$看做$a_{0}x^{0}+a_{1}x^{1}+...+a_{n-1}x^{n-1}$.那么第一种操作相当于乘以$1+ ...