热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何重命名集群中的索引?

如何解决《如何重命名集群中的索引?》经验,为你挑选了5个好方法。

我需要重命名集群中的几个索引(必须更改其名称,我不能使用别名).

我看到没有支持的方法可以做到这一点,我发现最接近的是重命名索引的目录,我在集群中尝试了这个.

群集有3台计算机A,B并且C每个计算机都会复制分片.我关闭了上elasticsearch A,改名/var/lib/elasticsearch/security/nodes/0/indices/oldindexname/var/lib/elasticsearch/security/nodes/0/indices/newindexname并重新启动A.

集群的状态是黄色的,而elasticsearch正在为恢复正确的状态做一些魔术.过了一段时间,我结束了

oldindexname可用并完全复制(从中恢复B并且C我猜)

newindexname 可用(我可以搜索它)但是头插件显示其分片处于"未分配"状态并且它们显示为灰色(未复制)

恢复期间security.log显示以下消息:

[2015-02-20 11:02:33,461][INFO ][gateway.local.state.meta ] [A.example.com] dangled index directory name is [newindexname], state name is [oldindexname], renaming to directory name

虽然newindexname可以搜索,但肯定不是正常状态.

我通过删除回滚到以前的状态newindexname.群集返回绿色,没有任何"未分配"条目.

鉴于这种情况,我怎么可以重命名oldindexnamenewindexname集群中的?

注意:我想到的最终解决方案是滚动复制oldindex到之后newindex删除oldindex.这需要时间,所以如果有更直接的解决方案,那就太棒了.



1> reto..:

您可以使用REINDEX来做到这一点.

Reindex不会尝试设置目标索引.它不会复制源索引的设置.您应该在运行_reindex操作之前设置目标索引,包括设置映射,分片计数,副本等.

    首先将索引复制到新名称

POST /_reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}

    现在删除索引

DELETE /twitter


据我所知,这不会将`twitter`的映射复制到`new_twitter`.
我同意_reindex的解决方案,但问题应该改变.重新索引不仅仅是重命名.它甚至可以改变数据索引的方式.

2> 小智..:

要重命名索引,可以使用Elasticsearch Snapshot模块.

首先,您必须拍摄索引的快照.在恢复它时,您可以重命名索引.

    POST /_snapshot/my_backup/snapshot_1/_restore
    {
     "indices": "jal",
     "ignore_unavailable": "true",
     "include_global_state": false,
     "rename_pattern": "jal",
     "rename_replacement": "jal1"
     }

rename_replacement: - 要备份数据的新索引名称.


Holycrap,这真是有用。谢谢!

3> Leo..:

如果你不能REINDEX一个解决方法是使用别名.从官方文档:

elasticsearch中的API在针对特定索引时接受索引名称,并在适用时接受多个索引.索引别名API允许使用名称对索引进行别名,所有API都自动将别名转换为实际索引名称.别名也可以映射到多个索引,并且在指定别名时,别名将自动扩展为别名索引.别名还可以与在搜索和路由值时自动应用的过滤器相关联.别名不能与索引同名.

请注意,如果您使用"更多此功能",此解决方案将无效.https://github.com/elastic/elasticsearch/issues/16560



4> lazywiz..:

因此,没有直接的方法来复制或重命名ES中的索引(我确实广泛搜索了我自己的项目)

但是,一个非常简单的选择是使用流行的迁移工具[Elastic-Exporter].

http://www.retailmenot.com/corp/eng/posts/2014/12/02/elasticsearch-cluster-migration/

[PS:这不是我的博客,只是偶然发现并发现它很好]

从而您可以复制索引/类型,然后删除旧的索引/类型.



5> 小智..:

另一种实现重命名或更改索引映射的方法是使用logstash重新索引.以下是logstash 2.1配置的示例:

input {
  elasticsearch {
   hosts => ["es01.example.com", "es02.example.com"]
   index => "old-index-name"
   size => 500
   scroll => "5m"
  }
}
filter {

 mutate {
  remove_field => [ "@version" ]
 }

 date {
   "match" => [ "custom_timestamp", "MM/dd/YYYY HH:mm:ss" ]
   target => "@timestamp"
 }

}
output {
 elasticsearch {
   hosts => ["es01.example.com", "es02.example.com" ]
   manage_template => false
   index => "new-index-name"
 }
}


所以你说重新索引Elasticsearch索引的最好方法是安装Logstash,然后用它来重新索引?看起来有点矫枉过正,特别是如果你真的不想/使用Logstash ......
推荐阅读
  • Elasticsearch 嵌套调用中动态类导致数据返回异常分析与解决方案 ... [详细]
  • Logstash安装配置
    阅读此文请先阅读上文:[大数据]-Elasticsearch5.3.1IK分词,同义词联想搜索设置,前面介绍了ES,Kiba ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 本文全面解析了 Python 中字符串处理的常用操作与技巧。首先介绍了如何通过 `s.strip()`, `s.lstrip()` 和 `s.rstrip()` 方法去除字符串中的空格和特殊符号。接着,详细讲解了字符串复制的方法,包括使用 `sStr1 = sStr2` 进行简单的赋值复制。此外,还探讨了字符串连接、分割、替换等高级操作,并提供了丰富的示例代码,帮助读者深入理解和掌握这些实用技巧。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
  • 一生热爱回头太难。在mysql5.5之前,默认使用的是Myisam引擎,5.5之后,默认使用InnoDB引擎。关于二者区别一直是重要的问题 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • Flume 数据采集组件
    目录1、数据收集工具系统产生背景2、专业的数据收集工具2.1、Chukwa2.2、Scribe2.3、Fluentd2.4、Logstash2.5、ApacheFlu ... [详细]
  • 分享一下我老师大神的人工智能教程!零基础,通俗易懂!http:blog.csdn.netjiangjunshow也欢迎大家转载本篇文章。分 ... [详细]
  • 优秀到卓越就差比他更快搭建elk集群架构上篇
    工作原理开源分布式搜索引擎,特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制 ... [详细]
  • 如何高效查看Java API和源码
    在Java学习过程中,查看API文档和源码是提高编程能力的重要手段。本文将详细介绍如何使用各种工具和方法高效地查看Java API和源码。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • ELK stack 学习记录
    ELK日志分析平台学习记录首先ELK主要指elasticsearch、logstash和kibana,三个开源软件组合而成的一套日志平台解决方案。可以将平时收集到的日志,通过前台展 ... [详细]
  • ELK+filebeat安装部署监控springboot日志
    ELK服务器端部署1.安装dockercompose,略2.配置docker-compose.ymlcdrootelkvidocker-compose.ymlversion:&am ... [详细]
author-avatar
尹洪2502855427
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有