首页 > 其他分享 >elasticsearch手动控制分片分布

elasticsearch手动控制分片分布

时间:2023-03-31 15:42:47浏览次数:29  
标签:node 手动 指定 节点 索引 elasticsearch 分片 分配


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"          


                     }          


                     }          


                     ]          


          }'

标签:node,手动,指定,节点,索引,elasticsearch,分片,分配
From: https://blog.51cto.com/u_2650279/6161796

相关文章

  • elasticsearch更改node id生成方法
    集群中节点的id是由discovery定义的,默认es有两种实现方式,一种是org.elasticsearch.discovery.local.LocalDiscovery表示把es的节点启动在同一个jvm的环境下,这样就可以通过AtomicLong来进行数字递增的id生成。另一种是org.elasticsearch.discovery.zen.ZenDiscovery它是分......
  • Elasticsearch.Net+Nest基本用法
    基本用法安装Nest(安装后默认会装上Elasticsearch.Net),注意:版本尽量选择跟ES版本一致的批量初始化数据到ESusingNest;try{//测试环境配置SSL证书需要的设置ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12|SecurityProtocolType.Tls11......
  • Battleland:Warrior vs Monster HD评测:自动不一定优于手动
    Battleland:WarriorvsMonster是一款结合冒险棋元素的RPG游戏,作为一款以RPG游戏来说,它有不错的角色设计及技能动画,丰富的职业、技能、道具、关卡等内容,但整体来说,它在战斗及团队过于简化的设计导致其娱乐性更像是休闲网页游戏,现在冰点将降价中,有兴趣的童鞋不妨看看评测进一步了......
  • centos7安装elasticsearch
    下载安装包,这里有一个分词器,第二个是es6安装包解压yum-yinstallunzip#安装解压缩软件unzipelasticsearch-6.8.6.zip#解压缩esunzipanalysis-icu-6.8.6.zip-delasticsearch-6.8.6/plugins/analysis-icu-6.8.6#解压缩分词器到插件目录mvelasticsearch-6.8......
  • VTKImageData 手动释放内存资源
    一.VtkSmartPointer 使用智能指针创建对象,则无需手动调用Delete()方法减少引用计数,因为引用计数的增加与减少都是由智能指针自动完成的。VTK实现了便利的自动内存管理的概念,使用引用计数。与其他智能指针不同之处在于引用计数保留在VTK对象本身中,而不是智能指针类中。这样的好......
  • CentOS7 Docker安装 ElasticSearch8、Kibana8
    一、Docker安装yuminstall-ydocker#开机自启systemctlenabledocker#启动dockersystemctlstartdocker二、安装ElasticSearchdockerpulldocker.elastic.co/elasticsearch/elasticsearch:8.6.2vi/etc/sysctl.conf在/etc/sysctl.conf文件最后添加一行vm.ma......
  • WebUploader大文件上传解决方案支持分片断点上传
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有......
  • javascript大文件上传解决方案支持分片断点上传
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......
  • 二、Elasticsearch部署
    第一次安装的是7.0版本,运维过程中发现与8.0还是有很多不同的地方下载javajdk:环境设置下载ES:解压压缩包修改yml允许跨域,为后面head做准备config->elasticsearch.yml增加下面配置(注意格式,:后面必须跟空格,结束不能带;号)http.cors.enabled:truehttp.cors.allow-ori......
  • csharp大文件上传解决方案支持分片断点上传
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在......