ElasticSearch 不停机重新索引(reindex) - 灰信网(软件开发博客聚合)


本站和网页 https://www.freesion.com/article/10441163240/ 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

ElasticSearch 不停机重新索引(reindex) - 灰信网(软件开发博客聚合)
首页
联系我们
版权申明
隐私政策
搜索
ElasticSearch 不停机重新索引(reindex)
标签: 小陈的学习日记 elasticsearch
假设需要reindex的索引为 book
1.新建一个临时索引 book_v1 (我们通常都使用template,所以不需要指定mapping)
PUT /book_v1
2.将旧索引数据reindex到临时索引中
POST /_reindex
"source": {
"index": "book"
// 这里可以写query,指定reindex哪些数据
// "query": {}
},
"dest": {
"index": "book_v1"
3.将别名指向指到临时索引上 这里是不停机重新索引的关键,所以我们在操作es时,建议都使用别名
"actions": [
"remove": {
"index": "book",
"alias": "book_alias"
},
"add": {
"index": "book_v1",
"alias": "book_alias"
4.删除旧索引
DELETE /book
5.创建一个新的book索引 (我们通常都使用template,所以不需要指定mapping)
PUT /book
6.将临时索引中的数据reindex到新book中(由于ES准实时的原因,所以两次reindex之间的时间间隔一定要大于1s,否则可能丢失数据)
POST /_reindex
"source": {
"index": "book_v1"
},
"dest": {
"index": "book"
7.将别名指向指回新book索引
POST /_aliases
"actions": [
"remove": {
"index": "book_v1",
"alias": "book_alias"
},
"add": {
"index": "book",
"alias": "book_alias"
8.删除临时索引v1
DELETE /book_v1
上面是直接在kibana上操作的,下面附上一个shell脚本,直接在ES服务器上运行即可
#!/bin/bash
index=$1
index_v1=$2
echo -e '\n1.开始新建索引['$index_v1']'
curl -XPUT "http://localhost:9200/$index_v1"
sleep 3s
echo -e '\n2.开始reindex['$index'->'$index_v1']'
curl -XPOST "http://localhost:9200/_reindex" -H 'Content-Type: application/json' -d'
"source": {
"index": "'$index'"
},
"dest": {
"index": "'$index_v1'"
}'
sleep 3s
echo -e '\n3.开始修改别名指向['$index'_alias->'$index_v1']'
curl -XPOST "http://localhost:9200/_aliases" -H 'Content-Type: application/json' -d'
"actions": [
"remove": {
"index": "'$index'",
"alias": "'$index'_alias"
},
"add": {
"index": "'$index_v1'",
"alias": "'$index'_alias"
}'
sleep 3s
echo -e '\n4.开始删除索引['$index']'
curl -XDELETE "http://localhost:9200/$index"
sleep 3s
echo -e '\n5.开始创建引['$index'']
curl -XPUT "http://localhost:9200/$index"
sleep 3s
echo -e '\n6.开始reindex索引['$index_v1'->'$index']'
curl -XPOST "http://localhost:9200/_reindex" -H 'Content-Type: application/json' -d'
"source": {
"index": "'$index_v1'"
},
"dest": {
"index": "'$index'"
}'
sleep 3s
echo -e '\n7.开始修改别名指向['$index'_alias->'$index']'
curl -XPOST "http://localhost:9200/_aliases" -H 'Content-Type: application/json' -d'
"actions": [
"remove": {
"index": "'$index_v1'",
"alias": "'$index'_alias"
},
"add": {
"index": "'$index'",
"alias": "'$index'_alias"
}'
sleep 3s
echo -e '\n8.开始删除索引['$index_v1']'
curl -XDELETE "http://localhost:9200/$index_v1"
echo -e '\n重新索引完成'
执行方法
#如果执行时候有问题 $'\r': 未找到命令 提示这个错误的话
#是因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令,所以,解决问题之道,就是把dos文件格式转换为unix格式。
#我使用的是notepad++,编辑打开右键,然后双击右下角的 Windows(CR LF) 点击转为Unix即可
/bin/bash ./reindex.sh book book_v1
执行结果
如果不放心话直接删除索引的话,我们可以对比一下文档数,确认相同后再删除索引
GET /_cat/indices/book,book_v1?v
版权声明:本文为q13145241q原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/q13145241q/article/details/108008025
智能推荐
恢复不小心执行 rm -f 被删除的文件?
模拟场景 1. 删除 误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件: 2. 恢复 1.使用lsof命令查看当前是否有进程打开/root/selenium/Spider/MySql.Data.dll文件: 从上面可以看出,当前文件状态为已删除(deleted)。 2.查看是否存在恢复数据: /proc/13067/fd:进程操作的文件描述符目录。 8...
删除数组重复项
删除数组重复项 删除重复值 有一个整数数组, 去掉该数组中重复元素后排序打印, (相同的数字只保留一个, 禁止使用set和语言本身提供的函数) 输入: 第一行: 整数N 表示该数组的长度 第二行: 数组中每个元素的值An (0<N<10000, 0<An<1000) 输出: 去掉重复元素后的有序数组 样例输入: 11 1 3 4 2 6 2 6 2 8 2 6 样例输出: 1 2 3 4 6 8 ...
laravel框架接入图表Charts模块
laravel 图表Charts模版搭建 此功能用到了Charts模块 所以需要使用composer倒入相应的拓展包 开发环境申明 操作系统:Mac 开发环境:vagrant + Nginx -Tengine2.2 + MySQL 5.5 + PHP-7.1 集成环境:宝塔面板 搭建php+宝塔面板+vagrant+laravel+Mac+centos7.2+Composer开发环境 详细操作 打...
JAVA线程浅剖析
目录 什么是线程(百度百科) 操作系统(OS)线程状态 java创建线程的方法 JVM线程状态转换 线程数据结构 备注 什么是线程(百度百科) 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行...
过滤器过滤一个包内所有servlet
先看下文件的目录结构: 我们要做的就是用MyFirstFilter过滤servlet包内的所有servlet即DisplayHeader、HelloServlet、SecondServlet。 主要就是两个注意事项: 1: 这里一定要注意就是那个注释部分: 它原来的值是:@WebServlet(“/HelloServlet”),一定要改成上图所示的才可以 2.就是web.x...
猜你喜欢
【Write up】bugku--convert
下载附件1.txt,打开看到全是0、1 看到这么多0、1,第一想法就是进行进制转换,将二进制转成10进制或者16进制等,方便下一步操作,由于文件内容较多,在线工具没法转换,写个简单的python脚本跑一下吧: 转成16进制之后,删除开头的0x,然后在进行十六进制转ASCII码操作(可以直接用notepad++的插件) 转成ASCII码之后,看到开头Rar!,很明显的rar文件头,修改...
操作系统笔记之基础
1.进入操作系统 神秘的开机背景后面到底发生了什么? 打开电源,计算机就开始工作了,那计算机怎么工作? 冯。诺依曼存储程序思想:把程序和数据存放在计算机存储器中,计算机在程序的控制下一步一步执行。 设定一个程序指针PC指向指令,由PC指针从存储器中取出指令,交给运算器和控制器,程序指针PC自动指向下一个指令。 那么问题:打开电源以后,计算机执行的第一条指令是什么? x86pc,计算机刚打开时pc ...
Android从零开始:了解视图和视图组
除了少数情况之外,您构建的每个应用程序都具有某种形式的用户界面。 在Android上,这是通过使用View和ViewGroup对象来完成的。 在本文中,您将了解一些可用于显示内容的更常用的View组件,并向您介绍了它们的用法。 1.意见 View对象专门用于将内容绘制到Android设备的屏幕上。 虽然可以在Java代码中实例化View ,但是使用它们的最简单方法是通过XML布局文件。 当您在An...
解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
0x00前言 文章中的文字可能存在语法错误以及标点错误,请谅解; 如果在文章中发现代码错误或其它问题请告知,感谢! 0x01解决方案 1.系统信息: 操作系统:Red Hat 4.4.7-17 mysql版本信息:mysql-community-server-5.7.21 2.安装完mysql启动,但是报如下错误: 3.此时,进入etc目录打开my.cnf配置文件: 然后加入skip-grant-...
DPDK Programmer’s Guide(3)环境抽象层(EAL)
官方文档查看地址: http://doc.dpdk.org/guides/prog_guide/env_abstraction_layer.html PDF下载地址: https://www.intel.com/content/www/us/en/embedded/technology/packet-processing/dpdk/dpdk-programmers-guide.html 本篇难度系...
灰信网(软件开发博客聚合)
程序员专属的优秀博客文章阅读平台
相关文章
Elasticsearch零停机索引重建
Elasticsearch系列---实战零停机重建索引
【Elasticsearch入门】ElasticSearch索引
elasticsearch 查看索引_ElasticSearch 索引基本操作
elasticsearch 索引_使用 ILM 管理 ElasticSearch 索引
Python之django-simple-captcha django简单验证码插件
uniapp省市区街道四级级联动选择器
Python+Paddlehub相片人像抠图精简源码实例
STL-vector
Inteli IDEA Maven创建Mybatis项目
热门文章
Dubbo/Dubbox的服务暴露(三)- 服务的注册
laravel框架中封装公共方法全局调用
【Rt-Thread】STM32输出PWM
操作系统(李治军) L12内核级线程的实现
课文果园机器人这篇课文什么的果子_温儒敏教授:对长课文、难课文教学的思考(文字+视频版)...
Python-Time库
Map集合之HashMap(二)
Web前端入门 HTML基础
kuangbin 简单搜索 - POJ 1321 (dfs模板题)
system 远程创建文件夹失败_macOS:使用Intellij IDEA远程连接Hadoop
推荐文章
sharding-jdbc系列之order by结果归并(八)
卜若的代码笔记-DJAngo系列-第七章:上传资源-后台的处理
String.intern()详解,关于String s2 = new String("ja") + new String("va"); s2.intern();
【达内课程】利用框架volley和gson展示百度音乐列表(上)
pyechart数据可视化11 双坐标轴丨2020年全球智能个人音频设备出货量及增长率
ThinkPHP 5如何接入支付宝支付功能
算法总结 - 爬楼梯问题逐步优化,斐波那契类似问题套路
利用Python与selenium自动化模拟登陆12306官网!
Android消息机制三剑客之Handler、Looper、Message源码分析(二)
Java 指定范围的链表反转
相关标签
其它
java se
elasticsearch
重建索引
elasticsearch 查看索引
elasticsearch 索引
elasticsearch删除索引
kibana创建索引
笔记
前端
Copyright 2010-2022 - All Rights Reserved - www.freesion.com