es 備份儲存方式支援以下幾種方式:
fs 檔案掛載
url 網路協議儲存 (http,https,ftp)
s3 亞馬遜
hdfs
azure 微軟
gcs 谷歌
本篇文章採用hdfs方式儲存
1.repository(倉庫)
es集群中,想要備份資料,必須建立倉庫,用來儲存快照,乙個集群可以建立多個倉庫
2.snapshot (快照)
建立倉庫後,我們可以建立快照,建立快照時必須指定乙個倉庫,需要依附某個倉庫
某個快照包含多個index(資料庫,schemea),預設備份整個集群index;當然可以指定備份的索引
3.restore (恢復)
備份後匯入到hdfs,進行快照恢復.
關閉集群安全(否則沒有辦法獲取hdfs的許可權)
源集群1.修改配置檔案
修改yml屬性,禁用安全管理
security.manager.enabled:false
啟動es集群。
2.安裝
repository-hdfs外掛程式
將repository-hdfs外掛程式解壓縮到/etc/search1/conf/plugins/目錄(每個節點都要裝)。
重啟es集群。
3.建立hdfs檔案目錄並修改屬主屬組
假設倉庫放在/testt/es目錄。
hdfs --config /etc/hdfs1/conf dfs -mkdir -p /test
t/es
hdfs --config /etc/hdfs1/conf dfs -chown -r elasticsearch:elasticsearch /tes
tt/es
4.建立倉庫
注:建議每個庫建乙個快照,防止快照索引資訊混亂,造成快照恢復的時候出現快照不存在或者快照恢復成功0個失敗0個成功的問題
hdfs namenode:
hdfs://
10.1.42.165
:8020
倉庫路徑:/testt/es
hdfs 配置檔案: /etc/hdfs1/conf/hdfs-site.xml
5.建立對應倉庫的快照
要備份的index: test_es
6.用mapreduce將資料傳輸到目標集群的hdfs上(注:先跨集群傳輸到tmp
目錄下,在移動到目標集群的目標目錄下,為了安全) h
adoop distcp /testt/es hdfs:
目標集群
1.移動到目標集群的目標目錄下 h
dfs dfs -mv /tmp/es /testt
2.更改屬名屬組
hdfs --config /etc/hdfs1/conf dfs -chown -r elasticsearch:elasticsearch /tes
tt/es
3.建立目標集群的倉庫
4.恢復快照
要恢復的index: test_es
恢復成index: restored_index_test_es
輔助性操作
檢視快照狀態
curl localhost:9200/_snapshot/backup_test/snapshot_1/_status?pretty
檢視恢復狀態
curl localhost:9200/index1/_recovery?pretty
刪除快照
curl -xdelete localhost:9200/_snapshot/backup_test/snapshot_1
檢視倉庫資訊
get /_snapshot/my_backup
當前所有倉庫資訊
get /_snapshot
get /_snapshot/_all
刪除倉庫資訊:僅僅刪除index,不會刪除hdfs資料
delete /_snapshot/my_backup
查詢快照
get /_snapshot/my_backup/snapshot_1 //查詢指定快照
get /_snapshot/my_backup/snapshot_*,othersnapshot //支援萬用字元
get /_snapshot/my_backup/_all //查詢所有快照
刪除乙個快照:僅刪除引用,未刪除hdfs資料
delete /_snapshot/my_backup/snapshot_1
補充:es1.x備份索引可以直接在es2.x恢復
es2.x備份索引可以直接在es5.x恢復
但是es1.x不可以在es5.x恢復,相容只垮乙個版本
問題:恢復快照資料,如果目標集群已經存在同名索引,需要先close索引
恢復某個快照所有資料
curl -xpost localhost:9200/_snapshot/backup_test/snapshot_1/_restore?wait_for_completion=trues
恢復某個快照部分索引資料
curl -xpost localhost:9200/_snapshot/backup_test/snapshot_1/_restore?wait_for_completion=true -d '
'
logstash遷移ES集群
前言 新機器上新建集群 logstash遷移原es集群資料到目標機器。安裝logstash,新建遷移配置檔案 檢視安裝進度 lsy test tail f wget log 解壓安裝包 lsy test tar zxvf logstash 5.6.1 重新命名 lsy test mv logstas...
Hive跨集群遷移
hive跨集群遷移資料工作是會出現的事情,其中涉及到資料遷移,metastore遷移,hive版本公升級等。1.遷移hdfs資料至新集群 hadoop distcp skipcrccheck update hdfs hdfs skipcrccheck 因本次遷移涉及低版本遷移高版本,如果hadoop...
hdfs問題 hdfs 跨集群資料遷移報錯
目前想要讓kerberos集群的hdfs資料遷移到非kerberos集群的hdfs上,使用以下命令報錯 sudo kinit hive sudo klist sudo hadoop distcp hdfs 8020 user hive warehouse test.db hdfs 8020 user...