1. 程式人生 > >elasticsearch建立快照、恢復快照

elasticsearch建立快照、恢復快照

(一)準備工作

環境:
elasticsearch 5.6.3 & repository-hdfs plugin
centos 7
jdk1.8
hadoop 2.7.2

建立測試索引並索引資料

(二)本地檔案系統儲存
1、elasticsearch.yml中配置倉庫路徑
path.repo: [“/home/zhang/backups”]

2、建立倉庫,倉庫名為:my_backup

curl -XPUT 'http://localhost:9200/_snapshot/my_backup' -H 'Content-Type: application/json' -d '{
{
  "
my_backup": { "type": "fs", "settings": { "compress": true, "location": "my_backup" } } }'

3、建立快照,快照名為snapshot_1

curl -XPUT 'http://localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true'

建立後的快照檔案:

這裡寫圖片描述

4、恢復快照資料
恢復快照資料之前需要關閉索引:

curl -XPOST 'http://localhost:9200/index_test/_close'

提供倉庫名和快照名通過_restore命令恢復快照:

curl -XPOST 'http://localhost:9200/_snapshot/my_backup/snapshot_1/_restore'

(三)Hadoop HDFS檔案系統儲存
1、安裝hdfs儲存支援外掛:
sudo bin/elasticsearch-plugin install repository-hdfs
2、建立倉庫,倉庫名為:my_hdfs_repository
路徑為:/home/zhang/backups/my_hdfs_storage
namenode在/etc/hosts中配置為本地地址

curl -XPUT
'http://localhost:9200/_snapshot/my_hdfs_storage?pretty' -H 'Content-Type: application/json' -d' { "type": "hdfs", "settings": { "uri": "hdfs://namenode:9000/", "path": "/home/zhang/backups/my_hdfs_storage" } } '

3、建立快照,快照名為snapshot_hdfs_1

curl -XPUT 'http://localhost:9200/_snapshot/my_hdfs_storage/snapshot_hdfs_1'

檢視hdfs倉庫檔案:
快照檔案

4、恢復快照
首先應該關閉索引,然後恢復

curl -XPOST 'http://localhost:9200/index_test/_close'
curl -XPOST 'http://localhost:9200/_snapshot/my_hdfs_storage/snapshot_hdfs_1/_restore'

(四)驗證是否能有效恢復
首先建立id 為1,2的文件,建立快照,再建立id為3的文件
關閉索引,恢復快照後,不存在id為3的文件,說明當前索引資料被快照恢復覆蓋了,快照資料正常