elasticsearch 冷热数据的读写分离
步骤
一、冷热分离集群配置
比如三个机器共六个node的es集群。
每个机器上各挂载一个ssd 和 一个sata。每个机器需要启动两个es进程、每个进程对应不同类型的磁盘。
关键配置:
node.max_local_storage_nodes: 2 #允许每个机器启动两个es进程
path.data: /home/centos/es/elasticsearch-2.1.0/data/ssd #需要显示指定es对应的数据目录
启动命令中需要指定node tag
./elasticsearch -d -Des.path.conf=/home/centos/es/elasticsearch-2.1./config/ssd -d --node.tag=ssd
./elasticsearch -d -Des.path.conf=/home/centos/es/elasticsearch-2.1./config/sata -d --node.tag=sata
启动以后节点如下:

二、创建索引模板
http://192.168.126.132:9200/_template/hottest/ PUT
{
"order": 1,
"template": "hottest*",
"settings": {
"index": {
"number_of_shards": "3",
"number_of_replicas": "1",
"refresh_interval": "1s",
"routing.allocation.require.tag": "ssd"
}
},
"mappings": {
"_default_": {
"properties": {
"userid": {
"index": "not_analyzed",
"type": "string"
},
"username": {
"index": "not_analyzed",
"type": "string"
},
"sex": {
"index": "not_analyzed",
"type": "string"
},
"address": {
"index": "no",
"type": "string"
}
},
"_all": {
"enabled": false
}
}
},
"aliases": {
"hottest": {}
}
}
"routing.allocation.require.tag": "ssd" 指定默认写入到 ssd 节点。
三、插入数据
http://192.168.126.132:9200/hottest_20170805/def/100001/ PUT
{
"userid": "100001",
"username": "zhangsan",
"sex": "1",
"address": "beijing"
}
在head 中看到数据全部保存在的 ssd 节点。

四、定时迁移老数据到 sata
http://192.168.126.132:9200/hottest_20170805/_settings/ PUT
{
"index.routing.allocation.require.tag": "sata"
}
在head中看到数据移动到了 sata 节点

解决了两个问题
一、使用有限的ssd节点资源来实现同时支持高并发读写和大数据量的存储。
通过配置使最新的数据保存在ssd磁盘节点上,较老的数据自动迁移到廉价sata节点。
二、用户做一次大的查询,大量的读io和聚合操作导致集群load升高,阻塞新数据的写入,能做到一定程度的读写分离。
elasticsearch 冷热数据的读写分离的更多相关文章
- EFK教程(3) - ElasticSearch冷热数据分离
基于ElasticSearch多实例架构,实现资源合理分配.冷热数据分离 作者:"发颠的小狼",欢迎转载与投稿 目录 ▪ 用途 ▪ 架构 ▪ 192.168.1.51 elasti ...
- 在现有的mysql主从基础上,搭建mycat实现数据的读写分离
环境准备:MySQL服务器做好主从复制:centos6的系统 主:192.168.164.131 从:192.168.164.144 mycat服务器:192.168.164.141 a.将MySQL ...
- net.sz.framework 框架 轻松搭建数据服务中心----读写分离数据一致性,滑动缓存
前言 前文讲述了net.sz.framework 框架的基础实现功能,本文主讲 net.sz.framework.db 和 net.sz.framework.szthread; net.sz.fram ...
- Spring和MyBatis实现数据的读写分离
移步: http://blog.csdn.net/he90227/article/details/51248200
- ELK冷热数据分离
通常情况下,我们使用ELK日志分析平台最常用的数据时间为1周或一个月(因业务场景不同,可能存在差别),时间比较长的数据没有特殊情况可能我们就没有必要再进行查询了,但是因业务需求或者作为凭证,这些日 ...
- 阿里云RDS读写分离数据查询延迟解决
mysql使用RDS做数据主从读写分离.在使用的过程中发现部分业务对其他服务以来严重.但是由于系统不是采用微服务的架构,造成部分数据插入数据库后,后续操作读取数据库没有查询到前面插入的数据.查看阿里云 ...
- MySQL+Amoeba实现数据库主从复制和读写分离
MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...
- sql server 本地复制订阅 实现数据库服务器 读写分离(转载)
转载地址:http://www.cnblogs.com/echosong/p/3603270.html 再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下S ...
- sql server 本地复制订阅 实现数据库服务器 读写分离
再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下SQL Server的复制订阅实现数据的读写分离 比起mysql的复制,SQL server 复制相对强大 ...
随机推荐
- 微信里关闭窗口 js
需要在微信中关闭页面窗口,不过window.close()不管用,问过群里才知道微信有自带的方法能关闭窗口,记录一下(这个只针对微信有效哦): WeixinJSBridge.call('closeWi ...
- CSS3 选择器——笔记+实战案例(基本选择器、组合选择器、属性选择器、伪类选择器)
使用CSS3 选择器——笔记 CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一.一对多或者多对一的匹配. 一.CSS3选择器分类 CSS选择器在CSS2.1选择器的基础上新增了属 ...
- 让IE8和IE9支持 placeholder
1.原因:placeholder是h5的新属性,IE10以前的浏览器(8.9)不支持此属性. 2.解决方法:jQuery三方插件 jquery-placeholder 3.快速开始: <!DO ...
- Mysql: 开启慢查询日志[ERROR] unknown variable 'log-slow-queries'处理办法
参考: http://www.dataguru.cn/thread-305503-1-1.html # slow query log qjp 20160921 # mysql5.6版本以上,取消了参数 ...
- k8s-for批量拉取国内镜像并做tag标签
kubeadm config images list ##查看所需镜像 如果是1.15 或者是其他就需要改改 又或者是下面的国内的镜像地址不能用了 百度完改改就ok #!/bin/bash im ...
- 阿里云服务器(Linux)上打开新端口
1.配置安全组: 2.开放防火墙规则 查看想开的端口是否已开 # firewall-cmd --query-port=8888/tcp 提示no表示未开 开永久端口号 firewall-cmd ...
- AOP 实现日志
package com.foen.foensys.config; import com.alibaba.fastjson.JSON;import com.foen.foensys.model.SysL ...
- linux 免密码 使用sudo 直接使用root权限执行命令
1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去. 2.添加sudo文件的写权限,命令是: chmod u+w /etc/sudoers 3.编辑sudoers文件 vi /etc/s ...
- JAVASCRIPT试题及答案
1.用jQuery编程实现获取选中复选框值的函数abc. <body> <input type="checkbox" name="aa" va ...
- python学习之路(19)
匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x) ...