博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch 冷热数据的读写分离
阅读量:4963 次
发布时间:2019-06-12

本文共 2042 字,大约阅读时间需要 6 分钟。

 

步骤

一、冷热分离集群配置

比如三个机器共六个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.0/config/ssd -d --node.tag=ssd./elasticsearch -d -Des.path.conf=/home/centos/es/elasticsearch-2.1.0/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升高,阻塞新数据的写入,能做到一定程度的读写分离。

转载于:https://www.cnblogs.com/yaoqingyuan/p/7291726.html

你可能感兴趣的文章
RSync实现文件备份同步
查看>>
数据导入到excel表中
查看>>
OptimalSolution(6)--栈和队列
查看>>
php运算符
查看>>
[LintCode] Binary Search Tree Iterator
查看>>
[补档]happiness
查看>>
封装计算方法实现面向对象计算器。
查看>>
Python入门教程 超详细1小时学会Python
查看>>
JS对象创建常用方式及原理分析
查看>>
定时压缩日志文件并发送到邮箱
查看>>
postgresql 一些操作
查看>>
《深入浅出深度学习:原理剖析与python实践》第八章前馈神经网络(笔记)
查看>>
linux shell中读写操作mysql数据库
查看>>
算法-翻转句子中单词的顺序
查看>>
关于测绘类软件的学习心得
查看>>
二叉搜索树的后序遍历序列 (java)
查看>>
Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
微信小说域名被封-366tool在线解答微信屏蔽小说网页停止访问的解决方案
查看>>
.NET Core项目与传统vs项目的细微不同
查看>>
TouchDevelop [Mobile App]
查看>>