elasticsearch 索引数据手动复制注意事项
一、背景
- 有一个已经在A机器建立的100+G的es索引数据文件,需要将这份数据文件直接复制到B机器的elasticsearch中
- B机器的节点是在一个集群中,有多个数据节点。
- 没有原始数据,不重新构建新的索引。
- 节点数据存放在es源文件的data文件夹中,索引数据存放目录结构依次为:/data/集群名/nodes/0/indices/索引名/分片数据,分片数据就是我们要移植的数据本体
- 这个索引数据之前只在一个es上使用且出于写入速度考虑,只设置了分片,未设置副本
- 要求能在B中识别和检索出这个索引
要复制的文件如下:

二、步骤
1、如果当前elasticsearch是以集群形式存在,只保留要数据所在的elasticsearch数据节点,其余数据节点关闭。
- 例如:集群中有3台ip分别为192.168.2.1 ; 192.168.2.2 ; 192.168.2.3的数据节点机器,我们要往192.168.2.1的es中直接复制数据文件,先将.2和.3的es关闭。
- 原因: 直接复制索引数据有时不会被识别出来,而当集群中有多个数据节点时,未被识别出来的分片数据仍旧会被分散到各个节点中,这样如果出现复制后索引未正确识别的情况,仍能从一个es中拿回完整的索引数据。
- 保留所有数据节点直接复制个人有成功也有失败,但是一旦失败切片分布在各个机器会很难处理。
2、创建一个空白的,不设置mapping的索引
例如:
# 要复制过来的数据文件中本身就包含mapping,不需要再次设置。
settings = {
'settings':
{
"number_of_shards": 5, # 分片数量
"number_of_replicas": 0, # 副本数量
"max_result_window": 10000000, # 一次es查询的数量上限
"track_total_hits": True, # 设置数量上限需要的参数
}
}
if es.indices.exists(index_name):
print(u"%s 已存在" % index_name)
else:
es.indices.create(index=index_name, body=settings)
3、保证要复制索引的集群只有一个数据节点。若当前运行为一个小集群,关停其他集群,只运行分片数据所在的es
- 分片直接复制不一定百分百被索引识别,在没有数据交互的情况下,各个分片不会被修改
- 只保留一个数据节点能保证要复制的切片全在一台机器上,防止出错切片转移到别的节点导致不完整或者让重建索引变难
4、复制索引数据文件
- 找到第2步建立的索引的数据存放位置/data/集群名/nodes/0/indices/索引名/,删除原来的文件
- 复制目标数据
5、重启es,查看索引数据是否被识别
- 用elasticsearch-head查看
- http://ip:port/_cat/indices?v&pretty看每个索引的docs.count
elasticsearch 索引数据手动复制注意事项的更多相关文章
- elasticsearch 索引数据多了怎么办,如何调优,部署 ?
面试官:想了解大数据量的运维能力. 解答:索引数据的规划,应在前期做好规划,正所谓"设计先行,编码在后", 这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户 ...
- elasticsearch 索引数据多了怎么办,如何调优,部署 ?
解答:索引数据的规划,应在前期做好规划,正所谓"设计先行,编码在后", 这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户 检索或者其他业务受到影响. 如何调优 ...
- Heka–>Elasticsearch 索引数据过程的优化
Heka 的参数配置跟Elasticsearch的参数没有关系,Heka只负责按照配置发送数据,所以索引的优化主要在 Elaticsearch端来完成. 下面是Elasticsearch的一些相关概念 ...
- java代码实现搜索elasticsearch索引数据
1.关于获取客户端以及增删改操作请看上一篇文章,文章中有详细的讲解 2.本篇文章讲述关于elasticsearch搜索匹配方式,主要有 match.match_phrase.term.regexp.w ...
- 使用SQL语句查询Elasticsearch索引数据
Elasticsearch 的官方查询语言是 Query DSL,存在毕竟有存在的道理,存在即合理.SQL 作为一个数据库查询语言,它语法简洁,书写方便而且大部分服务端程序员都清楚了解和熟知它的写法. ...
- 第六篇 elasticsearch express 删除索引数据
express 框架删除elasticsearch索引数据 1.在elasticsearch.js文件下添加 function deleteDocument(id) { return elasticC ...
- 如何通过倾斜摄影数据手动配置s3c索引文件?
如何通过倾斜摄影数据手动配置s3c索引文件? 大家知道,倾斜摄影数据最常见的是OSGB格式,并且是由一个一个的Tile分级文件夹构成的Data文件夹.结构一般如下图所示: 那么,如何才能把模型的各个瓦 ...
- Elasticsearch 之 数据索引
对于提供全文检索的工具来说,索引时一个关键的过程——只有通过索引操作,才能对数据进行分析存储.创建倒排索引,从而让使用者查询到相关的信息. 本篇就ES的数据索引操作相关的内容展开: 更多内容参考:El ...
- ES 18 - (底层原理) Elasticsearch写入索引数据的过程 以及优化写入过程
目录 1 Lucene操作document的流程 1.1 添加document的流程 1.2 删除document的流程 2 优化写入流程 - 实现近实时搜索 2.1 流程的改进思路 2.2 设置re ...
- 用elasticsearch索引mongodb数据
参照网页:单机搭建elasticsearch和mongodb的river 三个步骤: 一,搭建单机replicSet二,安装mongodb-river插件三,创建meta,验证使用 第一步,搭建单机m ...
随机推荐
- react 高效高质量搭建后台系统 系列 —— 脚手架搭建
其他章节请看: react 高效高质量搭建后台系统 系列 脚手架搭建 本篇主要创建新项目 myspug,以及准备好环境(例如:安装 spug 中用到的包.本地开发和部署.自定义配置 react-app ...
- 2、Java封装、继承与多态
/** * 类.对象.面向过程.面向对象的理解: * 1.类:类是封装对象的属性和方法的载体 * * 2.对象:对象是类抽象出来的一个实例 * * 3.面向过程:面向过程注重的是具体的实现过程,因果关 ...
- 如何使用Redis和RabbitMQ实现一个学生抢课系统(可类比商品秒杀系统)
1.如何使用Redis和RabbitMQ实现一个学生抢课系统(可类比商品秒杀系统) 电商项目中的秒杀场景我们都很常见,不只是京东和淘宝现在很多的小程序公众号也有做现时限购的秒杀场景,那么如何做一个秒杀 ...
- 原生js实现rsa加密
原生js实现rsa加密 示例 createNewUserKey().then(function(keyPairs) { encrypt("this is origin text", ...
- day04-Spring管理Bean-IOC-02
Spring管理Bean-IOC-02 2.基于XML配置bean 2.7通过util空间名称创建list BookStore.java: package com.li.bean; import ja ...
- ArcGIS工具 - 计算折点数量
在GIS中,点构成线,线构成面,面构成体,维度增加,模型也加复杂.有时,我们需要统计线面等要素到底由多少个点构成,系统工具没有此功能,为源地理提供了三种解决方案. 方法一 折点转点 使用要素折点转点工 ...
- 前端向后端发送请求(FormData),你们不要吐槽我,有的时候我也不想写注释
JSON对象转成formData对象,formData对象转成JSON 在向后端请求时,如果上传的数据里存在file文件对象,需要用到表单提交,这时候我们需要将JSON对象,转成formData对象, ...
- 分布式协议与算法-Raft算法
本文总结自:极客时间韩健老师的分布式协议与算法实战课程. 大家都知道,Raft算法属于Multi-Paxos算法,它是在Multi-Paxos思想的基础上,做了一些简化和限制.关于Paxos算法,博主 ...
- Linux基础介绍
Linux基础介绍 一.运维的本质 运维:运行维护应用程序 岗位需求:自动化运维.DBA.docker+K8s 运维的本质: 1.尽可能保证应用程序24小时不间断运行 2.尽可能保证数据的安全 3.尽 ...
- Java入门与进阶P-3.7+P-3.8
猜数游戏 让计算机来想一个数,然后让用户来猜,用户每输入一个数,就告诉它这是大了还是小了,知道用户猜中为止,最后还要告诉用户它猜了多少次 因为需要不断重复让用户猜,所以需要用到循环 在实际写出程序之前 ...