elasticsearch手动控制分片分布
2015-12-23 16:12
337 查看
elasticsearch可以通过reroute api来手动进行索引分片的分配。
不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点。
一共有三种操作,分别为:移动(move),取消(cancel)和分配(allocate)。下面分别介绍这三种情况:
移动(move)
把分片从一节点移动到另一个节点。可以指定索引名和分片号。
取消(cancel)
取消分配一个分片。可以指定索引名和分片号。node参数可以指定在那个节点取消正在分配的分片。allow_primary参数支持取消分配主分片。
分配(allocate)
分配一个未分配的分片到指定节点。可以指定索引名和分片号。node参数指定分配到那个节点。allow_primary参数可以强制分配主分片,不过这样可能导致数据丢失。
下面是个简单的例子:
curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [ {
"move" :
{
"index" : "test", "shard" : 0,
"from_node" : "node1", "to_node" : "node2"
}
},
"cancel" :
{
"index" : "test", "shard" : 0, "node" : "node1"
}
},
{
"allocate" : {
"index" : "test", "shard" : 1, "node" : "node3"
}
}
]
}'
转自:http://www.searchtech.pro/elasticsearch-manual-allocate-shard
不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点。
一共有三种操作,分别为:移动(move),取消(cancel)和分配(allocate)。下面分别介绍这三种情况:
移动(move)
把分片从一节点移动到另一个节点。可以指定索引名和分片号。
取消(cancel)
取消分配一个分片。可以指定索引名和分片号。node参数可以指定在那个节点取消正在分配的分片。allow_primary参数支持取消分配主分片。
分配(allocate)
分配一个未分配的分片到指定节点。可以指定索引名和分片号。node参数指定分配到那个节点。allow_primary参数可以强制分配主分片,不过这样可能导致数据丢失。
下面是个简单的例子:
curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [ {
"move" :
{
"index" : "test", "shard" : 0,
"from_node" : "node1", "to_node" : "node2"
}
},
"cancel" :
{
"index" : "test", "shard" : 0, "node" : "node1"
}
},
{
"allocate" : {
"index" : "test", "shard" : 1, "node" : "node3"
}
}
]
}'
转自:http://www.searchtech.pro/elasticsearch-manual-allocate-shard
相关文章推荐
- AndroidStudio怎样导入jar包
- 关于tableView中cell高度的计算3种方式记录
- C中static的用法
- DataTables 控件使用和心得 (2) - 参数Options中文说明
- NullPointerException in ClientCnxn$EventThread.processEvent
- MySQL安装与卸载
- uva 10282
- java多线程或者定时任务中查询数据库报空指针异常
- require 和 include 的区别
- 怎么让ubuntu变得更加好用
- iOS开发 解决pods-frameworks.sh:permission denied问题
- 必读内参:70P+报告揭开VR底牌 为啥叫好不叫座?终端全解
- Android ListView使用(非原创)
- [Err] 1205 - Lock wait timeout exceeded; try restarting transaction
- RecyclerView自适应高度的LinearLayoutManager
- 整理的学习swift的网站和资源
- Android环境下使用cordova从事手写签名代码
- iOS-横竖屏管理,支持所有方向旋转时用代码控制允许旋转&不允许旋转
- sql server 重复记录
- log4j 配置信息解释