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 ...
随机推荐
- nuxt之vuex的使用
先来了解一下官网:https://www.nuxtjs.cn/guide/vuex-store 一.首先在 store 文件下新建一个index.js文件 const state = () => ...
- MongoDB - 模式设计
注意事项 模式设计,即在文档中表示数据的方式,对于数据表示来说时非常关键的. 为 MongoDB 做模式设计时,在性能.可伸缩性和简单性方面是重中之重,也需要考虑一些特别的注意事项. 限制条件 与常见 ...
- MySql索引下推知识分享
作者:刘邓忠 Mysql 是大家最常用的数据库,下面为大家带来 mysql 索引下推知识点的分享,以便巩固 mysql 基础知识,如有错误,还请各位大佬们指正. 1 什么是索引下推 索引下推 (Ind ...
- 如何用 30s 给面试官讲清楚什么是 Session-Cookie 认证
引言 由于 HTTP 协议是无状态的,完成操作关闭浏览器后,客户端和服务端的连接就断开了,所以我们必须要有一种机制来保证客户端和服务端之间会话的连续性,也称为认证,最常见的应用场景就是保持用户的登录态 ...
- OPPO 后端开发 一、二面面经
你好,我是 Guide,看了这么多面试成功的经验分享,今天来看一个读者分享的 Oppo 秋招面试失败经历. 面经合集请看:Java面试题&面经精选集. 下面是正文(文中的我为读者本人). 个人 ...
- SpringBoot 项目中配置多个 Jackson 的 ObjectMapper ,以及配置遇到的坑
目录 问题说明 原因排查分析 结论总结 Jackson 自动装配分析 问题说明 我们都知道,SpringBoot 项目中,如果引入了 Jackson 的包,哪怕不配置,SpringBoot 也会帮我们 ...
- 前端防错以及好用小tips指南总结
@前端防錯以及好用小tips指南總結 1.一般情況下我們接收到的都是對象格式,某些情況下,需要接到後端傳過來的奇怪的字符串格式的JSON,需要解析成對象,但是有時候他們傳過來的格式有問題,會報錯 解決 ...
- ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
前言 最近一段时间,我使用golang开发了一个新的ORM库. 为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般的难用. 然后我 ...
- Golang编译
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go SET CGO_ENABLED=0 SET GOOS=linux ...
- 【随笔记】Android 命令行联网、更新DNS、同步网络时间
一.命令行联网 # 启用网卡 busybox ifconfig wlan0 up # 启用服务 wpa_supplicant -iwlan0 -Dnl80211 -c/system/etc/wifi/ ...