【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 的恢復操作默認會覆蓋目標索引中的現有數據。為了避免覆蓋,可以通過重命名索引、僅恢復部分數據或備份現有數據來實現。在執行恢復操作之前,務必仔細規劃,以確保數據安全。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71765.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71765.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談 DeepSeek 對 DBA 的影響

引言: 在人工智能技術飛速發展的背景下,DeepSeek 作為一款基于混合專家模型(MoE)和強化學習技術的大語言模型,正在重塑傳統數據庫管理(DBA)的工作模式。通過結合其強大的自然語言處理能力、推理…

STM32F4 UDP組播通信:填一填ST官方HAL庫的坑

先說寫作本文的原因,由于開項目開發中需要用到UDP組播接收的功能,但是ST官方沒有提供合適的參考,使用STM32CubeMX生成的代碼也是不能直接使用的,而我在網上找了一大圈,也沒有一個能夠直接解決的方案,deepse…

leetcode日記(85)驗證二叉搜索樹

不難,有兩種解法(看答案才想到中序遍歷)。 我用的是普通遞歸,和上一題差不多,規定min和max,每次遍歷縮小范圍: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNod…

如何在rust中解析 windows 的 lnk文件(快捷方式)

一、從標題二開始看😁 這些天在使用rust寫一個pc端應用程序,需要解析lnk文件獲取lnk的圖標以及原程序地址,之前并沒有過pc端應用程序開發的經驗, 所以在廣大的互聯網上游蕩了兩天。額🥺 今天找到了這個庫 lnk_parse很…

啟動wsl里的Ubuntu24報錯:當前計算機配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED

問題:啟動wsl里的Ubuntu24報錯 報錯信息: 當前計算機配置不支持 WSL2。 請啟用“虛擬機平臺”可選組件,并確保在 BIOS 中啟用虛擬化。 通過運行以下命令啟用“虛擬機平臺”: wsl.exe --install --no-distribution 有關信息,請訪…

Python使用FastAPI結合Word2vec來向量化200維的語言向量數值

準備 pip install fastapi>0.68.0 pip install uvicorn[standard]>0.15.0 pip install gensim>4.0.0 pip install jieba>0.42.1 pip install numpy>1.21.0 pip install scikit-learn>1.0.0少了的就直接補充就好 代碼 from fastapi import FastAPI, HTTPExc…

ControlNet

文章目錄 摘要abstract1.ControlNet1.1 原文摘要1.2 模型架構1.3 架構細節1.4 訓練損失函數1.5 實驗1.6 結論 2.總結參考文獻 摘要 本周學習的ControlNet 是一種用于文本到圖像擴散模型(如 Stable Diffusion)的條件控制方法。它通過凍結預訓練的擴散模型…

Visual-RFT視覺強化微調:用「試錯學習」教會AI看圖說話

📜 文獻卡 英文題目: Visual-RFT: Visual Reinforcement Fine-Tuning;作者: Ziyu Liu; Zeyi Sun; Yuhang Zang; Xiaoyi Dong; Yuhang Cao; Haodong Duan; Dahua Lin; Jiaqi WangDOI: 10.48550/arXiv.2503.01785摘要翻譯: 像OpenAI o1這樣的大型推理模型中的強化微調…

Hadoop管理頁看不到任務的問題

這個yarn分配任務了但是為空 在$HADOOP_HOME/conf/mapred-site.xml 原來的配置文件基礎之上添加&#xff1a; <property><name>mapreduce.framework.name</name><value>yarn</value></property> 重啟之后就好了

傅里葉變換:跨越時空的數學魔法

引言&#xff1a;從振動到信息——傅里葉的智慧 傅里葉變換&#xff08;Fourier Transform&#xff09;是數學與工程領域最具影響力的工具之一。它的核心思想是將復雜的信號分解為簡單的正弦波和余弦波的疊加&#xff0c;從而揭示隱藏在數據背后的頻率信息。自19世紀法國數學家…

DR和BDR的選舉規則

在 OSPF&#xff08;開放最短路徑優先&#xff09;協議中&#xff0c;DR&#xff08;Designated Router&#xff0c;指定路由器&#xff09; 和 BDR&#xff08;Backup Designated Router&#xff0c;備份指定路由器&#xff09; 的選舉是為了在廣播型網絡&#xff08;如以太網…

【linux網絡編程】套接字編程API詳細介紹

在C語言中&#xff0c;套接字&#xff08;Socket&#xff09;編程主要用于網絡通信&#xff0c;尤其是在基于TCP/IP協議的應用程序開發中。常用的套接字編程API主要基于Berkeley Sockets&#xff08;伯克利套接字&#xff09;接口&#xff0c;這些函數通常在<sys/socket.h&g…

Linux和gcc/g++常用命令總結

目錄 Linux命令總結 文件操作相關命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本處理操作命令 grep awk sed 進程管理操作相關命令 ps top htop kill pkill killall chmod chown 網絡操作相關命令 ping ifconfig netstat ss lsof curl …

VUE的第二天

1. 指令修飾符 1.1什么是指令修飾符&#xff1f; ? 所謂指令修飾符就是通過“.”指明一些指令后綴 不同的后綴封裝了不同的處理操作 —> 簡化代碼 1.2按鍵修飾符 keyup.enter —>當點擊enter鍵的時候才觸發 代碼演示&#xff1a; <div id"app"><…

WSL with NVIDIA Container Toolkit

一、wsl 下安裝 docker 會提示安裝 docekr 桌面版&#xff0c;所以直接安裝 docker 桌面版本即可 二、安裝 NVIDIA Container Toolkit NVIDIA Container Toolkit倉庫 https://github.com/NVIDIA/nvidia-container-toolkit?github.com/NVIDIA/nvidia-container-toolkit 安裝…

mysql下載

目錄 下載地址&#xff1a; 1.MSI安裝包下載 2.ZIP壓縮包下載 卸載MySQL&#xff1a; 下載地址&#xff1a; MySQL :: Download MySQL Community Server到mysql官網進行下載&#xff1a;MySQL :: Download MySQL Community Server &#xff08;下面二選一&#xff0c;選擇一…

基于Kubernetes部署MySQL主從集群

以下是一個基于Kubernetes部署MySQL主從集群的詳細YAML示例&#xff0c;包含StatefulSet、Service、ConfigMap和Secret等關鍵配置。MySQL主從集群需要至少1個主節點和多個從節點&#xff0c;這里使用 StatefulSet 初始化腳本 實現主從自動配置。 1. 創建 Namespace (可選) ap…

如何使用 GPT-4o 翻譯播客聲音

Voice Translation into Different Languages | OpenAI Cookbook 如何使用 GPT-4o 將播客翻譯并配音成您的母語 您是否曾想過將播客翻譯成您的母語&#xff1f;翻譯和配音音頻內容可以讓全球更多的觀眾獲取信息。而現在&#xff0c;借助 GPT-4o 的音頻輸入&#xff08;audio-i…

Lab17_ Blind SQL injection with out-of-band data exfiltration

文章目錄 前言&#xff1a;進入實驗室構造 payload 前言&#xff1a; 實驗室標題為&#xff1a; 帶外數據泄露的 SQL 盲注 簡介&#xff1a; 本實驗包含一個SQL盲目注入漏洞。應用程序使用跟蹤Cookie進行分析&#xff0c;并執行包含提交的Cookie值的SQL查詢。 SQL查詢是異…

深入解析 configService.addListener 使用中的注意事項

在使用 Nacos 的 configService.addListener 方法進行配置監聽時&#xff0c;為了確保程序的穩定性、可靠性以及高效性&#xff0c;有諸多注意事項需要我們關注。下面將對這些關鍵要點進行詳細闡述。 一、連接穩定性 1.1 網絡連接問題 Nacos 客戶端與服務端通過網絡進行通信&…