让Elasticsearch集群冷热分离、读写分离【转】
转自:https://blog.csdn.net/jiao_fuyou/article/details/50511255
根据Elasticsearch中文社区《ES冷热分离(读写分离) hot, stale 场景》一篇整理的。
一、冷热分离
- 按《控制Elasticsearch分片和副本的分配》来设置,将hot,stale数据分到不同的集群上去
- hot集群只保留最近一天或两天数据
写一个定时任务每天凌晨将前一天的索引标记为stale
PUT /index_name/_settings
{
"index.routing.allocation.include.zone" : "stale"
}- 1
- 2
- 3
- 4
这样旧索引数据会自动迁移到stale集群上
详细情况参考:
https://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-cluster.html
https://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-reroute.html
二、读写分离
- 即使这样处理后,hot集群即使只有一两数据,但是一般象log类数据,查询的一般都是最近一两天的数据,致使hot集群负载依然很大。es有没有办法实现像mysql主从的效果,然后查询只在从机上查询?有没有办法让副本分布在某些特定节点上,然后查询只查询这些节点?
- 按《elasticsearch高级配置之分片分布规则设置》中(强制分布规则)来设置,迫使不允许副本被分配到与主分片相同的区域,比如:让副本数据分布到stale集群上。
上面的规则有时并不能完全的控制复本一定在某个集群上,它只能尽量保证主分片和副本不在一个集群上,这个时候同样也可以起个定时任务,手动的将副本reroute到集群节点上
POST /_cluster/reroute
{
"commands" : [ {
"move" :
{
"index" : "test", "shard" : 0,
"from_node" : "node1", "to_node" : "node2"
}
},
{
"allocate" : {
"index" : "test", "shard" : 1, "node" : "node3"
}
}
]
}- 详细情况参考:
https://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-cluster.html
https://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-reroute.html
三、查询选项
上面两种方法将冷热,读写数据都分布到了不同的集群上,下面看看如何在指定查询参数,只查询stale集群节点上的数据。
POST /_search?preference=_only_nodes:zone:stale
{
"query": {
"match": {
"title": "elasticsearch"
}
}
}
上面这个可以只查询node.zone: stale节点数据。这个查询选项要求ES版本在1.7.0以上。关于查询选项详细资料参考:
四、总结
- 已经不再indexing的索引,通过require.zone的方式迁移到stale集群上,完成冷热分离;
- 还在indexing的索引,通过reroute将replica shard强制allocate到stale集群上;
- search的时候,通过?preference=_replica或者?preference=_only_nodes:xxx的方式指定读取哪些。
但是需要注意一点的是:因为es的replica也是一个实际需要cpu和io的indexing过程,而且indexing本身也有要求要写够一定副本数来才算写入完成。所以,你即使只请求replica,也是有可能影响到写入的。
所以,你只能开启一个副本——写入副本数要求是从二个副本开始才有。
让Elasticsearch集群冷热分离、读写分离【转】的更多相关文章
- linux上使用amoeba实现MySql集群,以及读写分离,主从复制
一.由于是MySql集群,所以就不可能只有一个MySql,需要多个MySql,具体安装步骤,可以参考http://www.cnblogs.com/ywzq/p/4882140.html这个地址进行安装 ...
- 基于Keepalived高可用集群的MariaDB读写分离机制实现
一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...
- 剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作
剖析Elasticsearch集群系列涵盖了当今最流行的分布式搜索引擎Elasticsearch的底层架构和原型实例. 本文是这个系列的第一篇,在本文中,我们将讨论的Elasticsearch的底层存 ...
- 剖析Elasticsearch集群系列之一:Elasticsearch的存储模型和读写操作
转载:http://www.infoq.com/cn/articles/analysis-of-elasticsearch-cluster-part01 1.辨析Elasticsearch的索引与Lu ...
- PB 级大规模 Elasticsearch 集群运维与调优实践
PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...
- EFK教程(4) - ElasticSearch集群TLS加密通讯
基于TLS实现ElasticSearch集群加密通讯 作者:"发颠的小狼",欢迎转载 目录 ▪ 用途 ▪ ES节点信息 ▪ Step1. 关闭服务 ▪ Step2. 创建CA证书 ...
- 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
本文源码:GitHub·点这里 || GitEE·点这里 一.集群环境搭建 1.环境概览 ES版本6.3.2,集群名称esmaster,虚拟机centos7. 服务群 角色划分 说明 en-maste ...
- Elasticsearch 集群和索引健康状态及常见错误说明
之前在IDC机房线上环境部署了一套ELK日志集中分析系统, 这里简单总结下ELK中Elasticsearch健康状态相关问题, Elasticsearch的索引状态和集群状态传达着不同的意思. 一. ...
- Elasticsearch学习总结 (Centos7下Elasticsearch集群部署记录)
一. ElasticSearch简单介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticse ...
随机推荐
- Java基础(十三) 文件高级技术
文件高级技术 一.常见文件类型处理 一)属性文件 属性文件很简单,一行表示一个属性,属性就是键值对,键和值用(=)或者(:)分隔. #ready to work name = tang age = p ...
- Max Factor 2710 最大的合数的质数因子
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2710 思路:用类似“埃氏筛法”求素数的方法 只是不在把合数标记为1 而是标记为他是因子数. 最后比较大小即 ...
- Django——ModuleNotFoundError: No module named 'asgiref.sync'
Django+channels运行时报错 Unhandled exception in thread started by <function check_errors.<locals&g ...
- uestc 猛男搜索26题 by qscqesze
https://vjudge.net/contest/202940#overview 不断更新
- JS 正则表达式从地址中提取省市县
var add1 = '四川省西昌市航天路'; var add2 = '北京市北京市东城区前门大街1号' var add3 = '新疆维吾尔自治区乌鲁木齐市天山区中山路479号'; var add4 ...
- 解决本地文件上传时fakepath的问题
$("input[type='file']").on('change', function () { var oFReader = new FileReader(); var fi ...
- 初始化bootstrap treeview树节点
最近在做启明星图库时,使用了Jquery Bootstrap Treeview插件.但是,遇到了一个初始化的问题.先看效果如下: 当用户打开图库时,左边分类第一个类别是“所有分类”,默认需要选中. ...
- 你真的会打 Log 吗
前言 工程师在日常开发工作中,更多的编码都是基于现有系统来进行版本迭代.在软件生命周期中,工程维护的比重也往往过半.当我们维护的系统出现问题时,第一时间想到的是查看日志来判断问题原因,这时候日志记录如 ...
- Apache Kafka 快速入门
概述 Apache Kafka是一个分布式发布-订阅消息系统和强大的队列,可以处理大量的数据,将消息从一个端点传递到另一个端点.Kafka适合离线和在线消息消费,Kafka消息保存在磁盘上,并在集群内 ...
- Office365 OneDrive Geo Move
Issue Description: 1. Connect to SPO Service. 2. Validate SPO Service OneDrive Geo move compatibilit ...