elasticsearch 手动控制分片分布

elasticsearch可以通过reroute api来手动进行索引分片的分配。 
不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点。

一共有三种操作,分别为:移动(move),取消(cancel)和分配(allocate)。下面分别介绍这三种情况: 
移动(move) 
把分片从一节点移动到另一个节点。可以指定索引名和分片号。 
取消(cancel) 
取消分配一个分片。可以指定索引名和分片号。node参数可以指定在那个节点取消正在分配的分片。allow_primary参数支持取消分配主分片。 
分配(allocate) 
分配一个未分配的分片到指定节点。可以指定索引名和分片号。node参数指定分配到那个节点。allow_primary参数可以强制分配主分片,不过这样可能导致数据丢失。 
下面是个简单的例子:

Java代码  

  1. curl -XPOST ‘localhost:9200/_cluster/reroute‘ -d ‘{
  2. "commands" : [ {
  3. "move" :
  4. {
  5. "index" : "test", "shard" : 0,
  6. "from_node" : "node1", "to_node" : "node2"
  7. }
  8. },
  9. "cancel" :
  10. {
  11. "index" : "test", "shard" : 0, "node" : "node1"
  12. }
  13. },
  14. {
  15. "allocate" : {
  16. "index" : "test", "shard" : 1, "node" : "node3"
  17. }
  18. }
  19. ]
  20. }‘
时间: 2024-11-02 10:06:34

elasticsearch 手动控制分片分布的相关文章

elasticsearch高级配置之(一)----分片分布规则设置

Java代码   cluster.routing.allocation.allow_rebalance 设置根据集群中机器的状态来重新分配分片,可以设置为always, indices_primaries_active和indices_all_active,默认是设置成indices_all_active来减少集群初始启动时机器之间的交互. Java代码   cluster.routing.allocation.cluster_concurrent_rebalance 设置在集群中最大允许同时进

ElasticSearch入门介绍之安装部署(二)

散仙,在上篇文章对ElasticSearch整体入门作了个介绍,那么本篇我们来看下,如何安装,部署es,以及如何安装es的几个比较常用的插件. es的安装和部署,是非常简单方便的,至少这一点散仙在es和solr之间,能够很明显的体现出来,solr的安装是需要依赖servlet容器,比如jetty,或者tomcat等,在下载完毕后,需要拷贝solr的安装部分到web容器里,然后稍作配置,即可启动访问,提供检索服务,当然solr也是非常简单易学的. es目前最新的版本是1.4.2,散仙使用的版本是1

elasticsearch集群介绍及优化【转】

elasticsearch用于构建高可用和可扩展的系统.扩展的方式可以是购买更好的服务器(纵向扩展)或者购买更多的服务器(横向扩展),Elasticsearch能从更强大的硬件中获得更好的性能,但是纵向扩展也有一定的局限性.真正的扩展应该是横向的,它通过增加节点来传播负载和增加可靠性.对于大多数数据库而言,横向扩展意味着你的程序将做非常大的改动来利用这些新添加的设备.对比来说,Elasticsearch天生是分布式的:它知道如何管理节点来提供高扩展和高可用.这意味着你的程序不需要关心这些.对于大

用ElasticSearch搭建自己的搜索和分析引擎

导语:互联网产品中的检索功能随处可见.当你的项目规模是百度大搜|商搜或者微信公众号搜索这种体量的时候,自己开发一个搜索引擎,加入各种定制的需求和优化,是非常自然的事情.但如果只是普通的中小型项目甚至创业团队|创业项目,直接拿轮子则是更合理的选择.ElasticSearch就是这样一个搜索引擎的轮子.更重要的是,除去常规的全文检索功能之外,它还具有基础的统计分析功能(最常见的就是聚合),这也让他变得更加强大和实用.还在用数据库的like来实现产品的全文检索吗?抛弃她,用ElasticSearch吧

elasticsearch 安装及其插件

插件作为一种普遍使用的,用来增强原系统核心功能的机制,得到了广泛的使用,elasticsearch也不例外. 1. 安装Elasticsearch插件 从0.90.2安装其实很简单,有三种方式, 1.1 在确保你网络顺畅的情况下,执行如下格式的命令即可: 1 plugin --install <org>/<user/component>/<version> 具体的<org>/<user/component>/<version>可参加各

(转)ElasticSearch学习

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引.  官方站点:http://www.elasticsearch.com/ 中文站点:http://es-cn.medcl.net/    1.安装  必须先安装Java环境,并设置 JAVA_HOME => C:\Program Files\Java\jdk1.6.0_18  elasticsea

与Elasticsearch交互的客户端

1.访问ES的方式 访问es的方式有两种,一种是http方式,还有一种是java客户端方式. 其中Java客户端又分为:1.1.Node client: 节点客户端实际上是一个集群中的节点(但不保存数据,不能成为主节点).因为它是一个节点,它知道整个集群状态(所有节点驻留,分片分布在哪些节点,数据在集群中的具体位置等等),这意味着它可以执行 APIs 而且少了一个网络跃点.能够直接转发请求到对应的节点上. 1.2.Transport Client: 传输客户端作为一种轻量级客户端,本身不加入集群

Es官方文档整理-2.分片内部原理

Es官方文档整理-2.分片内部原理 1.集群 一个运行的Elasticsearch实例被称为一个节点,而集群是有一个或多个拥有相同claster.name配置的节点组成,他们共同承担数据和负载压力,当有节点加入或从集群中移除的时候,集群或自动平局分布所有数据. 当一个节点被选举成为主节点时,他哈不负责额管理集群范围内的所有变更,例如增加.删除索引,或者增加.删除节点等.而主节点不涉及文档级别的变更和搜索操作,所以集群只有一个主节点,即使流量增加,他也不会成为瓶颈.任何节点都可以成为主节点. 3.

Elasticsearch - 简单介绍

Elasticsearch 简介 1. 什么是 Elasticsearch ElasticSearch 是一个基于 Lucene 的搜索服务器. 它了一个分布式多 用户能力的全文搜索引擎,能够达到实时.稳定.可靠.快速搜索. 也可以看做 是布式的实时文件存储,每个字段都能被索引并可被搜索. 目前大多数公司把 elasticsearch 作为 elk 日志系统中日志数据储存和实时 搜索工具. 这一部分用户,他们注重的是数据的实时写入,在大量日志数据产生 时,不堆积. 另一部分公司,把 elasti