es資料跨集群遷移(HDSF方法)

2021-08-27 05:18:21 字數 3054 閱讀 5287

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...