【Elasticsearch】Elasticsearch 中使用 HDFS 存储快照
在 Elasticsearch 中使用 HDFS 存储快照的步骤如下:
1.安装 HDFS 插件
要使用 HDFS 存储 Elasticsearch 的索引快照,需要在 Elasticsearch 集群的所有节点上安装 HDFS 插件。
• 在线安装:适用于网络环境良好的场景,执行以下命令:
```bash
sudo bin/elasticsearch-plugin install repository-hdfs
```
• 离线安装:适用于网络受限的环境,先下载插件包,然后安装:
```bash
sudo bin/elasticsearch-plugin install file:///path/to/repository-hdfs.zip
```
插件版本必须与 Elasticsearch 版本一致。
安装完成后,重启所有 Elasticsearch 节点以使插件生效。
2.创建 HDFS 存储库
在 HDFS 中创建一个目录,并为 Elasticsearch 用户分配权限:
```bash
sudo -u hdfs hdfs dfs -mkdir /user/elasticsearch
sudo -u hdfs hdfs dfs -chown elasticsearch:elasticsearch /user/elasticsearch
```
然后在 Elasticsearch 中注册 HDFS 存储库:
```bash
PUT /_snapshot/my_hdfs_repository
{
"type": "hdfs",
"settings": {
"uri": "hdfs://namenode:8020/",
"path": "elasticsearch/repositories/my_hdfs_repository",
"conf.dfs.client.read.shortcircuit": "true"
}
}
```
• `uri`是 HDFS 集群的地址。
• `path`是 HDFS 中存储快照的目录路径。
• `conf.dfs.client.read.shortcircuit`可根据需要设置为`true`或`false`。
3.创建快照
注册存储库后,可以创建快照:
```bash
PUT /_snapshot/my_hdfs_repository/snapshot_1?wait_for_completion=true
{
"indices": "index1,index2", # 指定要备份的索引,可选
"ignore_unavailable": true, # 忽略不存在的索引
"include_global_state": false # 不备份集群全局状态
}
```
• `wait_for_completion=true`参数会阻塞操作直到快照完成。
4.查询快照
可以使用以下命令查询快照状态:
```bash
GET /_snapshot/my_hdfs_repository/snapshot_1
```
5.恢复快照
快照可以恢复到同一个集群或另一个集群:
```bash
POST /_snapshot/my_hdfs_repository/snapshot_1/_restore?wait_for_completion=true
{
"indices": "index1,index2", # 指定要恢复的索引
"include_global_state": true
}
```
注意事项
• 快照和恢复操作存在版本兼容性问题,备份的 Elasticsearch 版本应与恢复时的版本一致。
• 在跨集群恢复时,目标集群需要创建与原始集群相同名称的存储库。
通过以上步骤,可以将 Elasticsearch 的快照存储到 HDFS 中,实现数据的备份和恢复。
是的,Elasticsearch 在恢复快照时,会覆盖目标索引中的现有数据。恢复快照的目的是将目标索引恢复到快照所记录的状态,因此它会替换掉目标索引中的现有数据。以下是关于恢复操作的一些关键点和注意事项:
1.恢复操作的覆盖行为
• 当你恢复一个快照时,Elasticsearch 会将快照中的索引数据完全覆盖目标索引中的数据。
• 如果目标索引已经存在,恢复操作会删除目标索引中的所有数据,并用快照中的数据替换。
• 如果目标索引不存在,Elasticsearch 会创建新的索引,并写入快照中的数据。
2.如何避免覆盖
如果你希望在恢复快照时保留目标索引中的现有数据,可以通过以下方式避免覆盖:
(1)重命名索引
在恢复快照时,可以通过`rename_pattern`和`rename_replacement`参数对索引进行重命名。例如:
```json
POST /_snapshot/my_hdfs_repository/snapshot_1/_restore
{
"indices": "my_index",
"rename_pattern": "my_index",
"rename_replacement": "my_index_restored"
}
```
这会将快照中的`my_index`索引恢复为`my_index_restored`,从而避免覆盖现有的`my_index`。
(2)仅恢复部分数据
如果你只需要恢复部分数据,可以在恢复时指定具体的索引,而不是整个快照。例如:
```json
POST /_snapshot/my_hdfs_repository/snapshot_1/_restore
{
"indices": "index1,index2" // 只恢复指定的索引
}
```
这样可以避免恢复不需要的索引,从而减少对现有数据的影响。
(3)备份现有数据
在恢复快照之前,建议先备份目标索引中的现有数据。可以创建一个新的快照,或者使用其他备份工具(如 Logstash)导出数据。
3.恢复时的注意事项
• 版本兼容性:恢复的 Elasticsearch 版本应与创建快照时的版本一致,或者至少是向后兼容的版本。
• 集群状态:在恢复之前,确保集群状态是绿色的,以避免恢复过程中出现错误。
• 索引状态:如果目标索引已经存在,恢复操作会删除并重建索引。如果需要保留现有数据,建议先重命名现有索引。
• 性能影响:恢复操作可能会对集群性能产生影响,建议在低峰时段进行。
4.示例:避免覆盖的恢复操作
以下是一个示例,展示如何在恢复快照时避免覆盖现有索引:
```json
POST /_snapshot/my_hdfs_repository/snapshot_1/_restore
{
"indices": "my_index",
"rename_pattern": "my_index",
"rename_replacement": "my_index_restored",
"include_global_state": false
}
```
这个操作会将快照中的`my_index`索引恢复为`my_index_restored`,而不会覆盖现有的`my_index`。
总结
Elasticsearch 的恢复操作默认会覆盖目标索引中的现有数据。为了避免覆盖,可以通过重命名索引、仅恢复部分数据或备份现有数据来实现。在执行恢复操作之前,务必仔细规划,以确保数据安全。
相关文章:
【Elasticsearch】Elasticsearch 中使用 HDFS 存储快照
在 Elasticsearch 中使用 HDFS 存储快照的步骤如下: 1.安装 HDFS 插件 要使用 HDFS 存储 Elasticsearch 的索引快照,需要在 Elasticsearch 集群的所有节点上安装 HDFS 插件。 • 在线安装:适用于网络环境良好的场景,执行以下命…...
Oracle 数据库基础入门(四):分组与联表查询的深度探索(下)
在 Oracle 数据库的操作中,联合查询与子查询是获取复杂数据的关键手段。当单表数据无法满足业务需求时,联合查询允许我们从多张表中提取关联信息,而子查询则能以嵌套的方式实现更灵活的数据筛选。对于 Java 全栈开发者而言,掌握这…...
深搜专题6:迷宫问题
描述 设有一个N*N方格的迷宫,入口和出口分别在左上角和右上角。 迷宫格子中分别放有0和1,0表示可通,1表示不能,迷宫走的规则如下: 即从某点开始,有八个方向可走,前进方格中数字为0时表示可通过…...
【每日学点HarmonyOS Next知识】web滚动、事件回调、selectable属性、监听H5内部router、Grid嵌套时高度设置
【每日学点HarmonyOS Next知识】web滚动、事件回调、selectable属性、监听H5内部router、Grid嵌套时高度设置 1、HarmonyOS WebView加载url无法滚动? scroll 里面嵌套webView,demo参考: // xxx.ets import web_webview from ohos.web.webv…...
MacBook上API调⽤⼯具推荐
在当今的软件开发中,API调用工具已经成为了开发者不可或缺的助手。无论是前端、后端还是全栈开发,API的调试、测试和管理都是日常工作中的重要环节。想象一下,如果没有这些工具,开发者可能需要手动编写复杂的CURL命令,…...
如何构建一个 Docker 镜像?
1. 创建 Dockerfile 文件 (1)选择工作目录 首先,创建一个项目目录,并进入该目录: mkdir my-docker-project cd my-docker-project(2)创建 Dockerfile 使用任何文本编辑器(如 nano、…...
【数据结构】LRUCache|并查集
目录 一、LRUCache 1.概念 2.实现:哈希表双向链表 3.JDK中类似LRUCahe的数据结构LinkedHashMap 🔥4.OJ练习 二、并查集 1. 并查集原理 2.并查集代码实现 3.并查集OJ 一、LRUCache 1.概念 最近最少使用的,一直Cache替换算法 LRU是Least Recent…...
go数组的声明和初始化
1.数组简介 数组是可以存放多个同一类型的数据。数组也是一种数据类型,在go中,数组是值类型。数组的长度也是数组类型的一部分,所以[2]int和[3]int属于不同的数据类型。 2.数组的长度也是类型的一部分 var arr1 [2]intvar arr2 [3]intfmt.P…...
基于STM32的智能家居中控系统
基于STM32的智能家居中控系统 下载源文件 链接:博客 第1章 绪论 1.1 研究背景与意义(扩增至1500字) • 市场数据支撑:引用IDC报告数据显示,中国智能家居设备市场年增长率达25%(2022年市场规模超6500亿元) …...
初识Qt · 信号与槽 · 基础知识
目录 前言: 信号和槽初识 两个问题 前言: 本文我们正式开始介绍信号与槽这个概念,在谈及Qt中的信号与槽这个概念之前,我们不妨回顾一下Linux中的信号,比如发生了除0错误,OS就会给该进程发送一个信号&am…...
Java高频面试之集合-03
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:说说ArrayList和LinkedList的区别 ArrayList 与 LinkedList 的详细对比 一、底层数据结构 特性ArrayListLinkedList存…...
常用的分布式ID设计方案
常用的分布式ID设计方案 在分布式系统中,生成全局唯一的ID是一个常见的需求。无论是数据库表中的主键,还是消息队列的消息ID,都需要一个高效且可靠的唯一标识符。本文将探讨几种常用的分布式ID设计方案,并分析它们的优缺点。 1. …...
宇树科技再落一子!天羿科技落地深圳,加速机器人创世纪
2025年3月5日,机器人行业龙头宇树科技(Unitree)在深圳再添新动作——全资子公司深圳天羿科技有限公司正式成立。这家注册资本10万元、法定代表人周昌慧的新公司,聚焦智能机器人研发与销售,标志着宇树科技在华南市场的战…...
【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)
背景: 已经用这个脚本的记得设置Wifi时候,关闭“自动登录” 前几天实在忍受不了CHD-WIFI动不动就断开,一天要重新连接,点登陆好几次。试了下在网上搜有没有CHD-WIFI的自动连接WIFI自动认证脚本,那样我就可以解放双手&…...
基于遗传算法的无人机三维路径规划仿真步骤详解
基于遗传算法的无人机三维路径规划仿真步骤详解 一、问题定义 目标:在三维空间内,寻找从起点到终点的最优路径,需满足: 避障:避开所有障碍物。路径最短:总飞行距离尽可能短。平滑性:转折角度不宜过大,降低机动能耗。输入: 三维地图(含障碍物,如立方体、圆柱体)。起…...
【Elasticsearch】索引生命周期管理相关的操作(Index Lifecycle Actions)
Elasticsearch 的Index Lifecycle Management(ILM)是一种用于管理索引生命周期的工具,它允许用户根据索引的使用阶段(如热、温、冷、冻结)自动执行一系列操作。以下是详细解释 Elasticsearch 中的索引生命周期操作(Index Lifecycl…...
计算机毕业设计SpringBoot+Vue.js电商平台(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理
华为w515麒麟芯片版,还有非麒麟芯片版本,是一款信创电脑,一般安装的UOS系统。 准备一个空U盘,先下载镜像文件及启动盘制作工具,连接如下: 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…...
初始提示词(Prompting)
理解LLM架构 在自然语言处理领域,LLM(Large Memory Language Model,大型记忆语言模型)架构代表了最前沿的技术。它结合了存储和检索外部知识的能力以及大规模语言模型的强大实力。 LLM架构由外部记忆模块、注意力机制和语…...
Vue+el-upload配置minIO实现大文件的切片并发上传、上传进度展示、失败重试功能
vue3el-upload实现切片上传 效果图 初始界面 上传中的界面 上传完成的界面 上传失败的界面 <template><div><el-uploadclass"BigFileUpload"ref"uploadRef"action"#"drag:show-file-list"false":on-change"…...
正则表达式梳理(基于python)
正则表达式(regular expression)是一种针对字符串匹配查找所定义的规则模式,独立于语言,但不同语言在实现上也会存在一些细微差别,下面基于python对常用的相关内容进行梳理。 文章目录 一、通用常识1.通配符ps.反义 2.…...
Scala 中 val 和对象内部状态的关系
在 Scala 中,val 用于声明不可变的变量,这意味着一旦 val 被赋值,它的引用(即指向的内存地址)就不能再改变。然而,这并不影响对象内部的状态(即对象的属性)是否可以改变。具体来说&a…...
skynet简单游戏服务器的迭代
在上一篇的基础上做了改进,主要三个更新: 基础框架引入多一层redis缓存,用于持久化数据,加速数据访问。原本需要通过mysql读取的操作,直接改成与redis层交互,redis会自动写入mysql,保证AP 最终…...
Python学习第八天
查看函数参数 操作之前给大家讲一个小技巧:如何查看函数的参数(因为python的底层源码是C语言并且不是开放的,也一直困扰着刚学习的我,这个参数叫什么名之类的看doc又总是需要翻译挺麻烦的)。 比如我们下面要说到的op…...
美股回测:历史高频分钟数据的分享下载与策略解析20250305
美股回测:历史高频分钟数据的分享下载与策略解析20250305 在金融分析和投资决策的精细化过程中,美股历史分钟高频数据发挥着至关重要的作用。这些数据以其详尽性和精确性,记录了股票每分钟的价格波动和成交量变化,为投资者提供了…...
【仿muduo库one thread one loop式并发服务器实现】
文章目录 一、项目介绍1-1、项目总体简介1-2、项目开发环境1-3、项目核心技术1-4、项目开发流程1-5、项目如何使用 二、框架设计2-1、功能模块划分2-1-1、SERVER模块2-1-2、协议模块 2-2、项目蓝图2-2-1、整体图2-2-2、模块关系图2-2-2-1、Connection 模块关系图2-2-2-2、Accep…...
服务流程设计和服务或端口重定向及其websocket等应用示例
服务流程设计和服务或端口重定向及其websocket等应用示例 目录 服务或端口重定向的服务设计和websocket等应用示例 一、通用请求控制流程 1.1、入口 1.2、所有GET请求首先预检控制单元 1.3、http请求会分别自动307重定向 1.4、所有请求首先执行跨源控制单元 1.5、然后…...
【数据库】关系代数
关系代数 一、关系代数的概念二、关系代数的运算2.1 并、差、交2.2 投影、选择2.3 笛卡尔积2.4 连接2.5 重命名2.6 优先级 一、关系代数的概念 关系代数是一种抽象的数据查询语言用对关系的运算来表达查询 运算对象:关系运算符:4类运算结果:…...
ubuntu20 安装python2
1. 确保启用了 Universe 仓库 在某些情况下,python2-minimal 包可能位于 Universe 仓库中。你可以通过以下命令启用 Universe 仓库并更新软件包列表: bash复制 sudo add-apt-repository universe sudo apt update 然后尝试安装: bash复制…...
MySQL无法连接到本地localhost的解决办法2024.11.8
问题描述:我的MySQL可以远程连接服务器,但无法连接自己的localhost。 错误提示: 2003 - Cant connet to MySQL server on localhost(10061 "Unknown error")查找问题原因: 1. 检查环境变量是否正确:发现没…...
