Contents
  1. 1. 前期准备
    1. 1.1. 安装hdfs插件
    2. 1.2. 建立快照库
  2. 2. 创建管理快照
    1. 2.1. 查询快照:
    2. 2.2. 删除快照
  3. 3. 还原快照

前期准备

安装hdfs插件

elasticsearch快照备份到hdfs,先安装hdfs插件,可以到官方下载zip格式,或者线上安装
官方安装文档

1
sudo bin/elasticsearch-plugin install repository-hdfs

建立快照库

然后建立hdfs repository,这里如果hdfs是主备master,把core-site.xml里面的相关配置按es的格式写进去
官方配置解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUT _snapshot/backup_hdfs_repo
{
"type": "hdfs",
"settings": {
"uri": "hdfs://zhadoop:8020/",
"path": "/user/elasticsearch/backup",
"load_defaults": true,
"conf.dfs.nameservices": "zhadoop",
"conf.dfs.ha.namenodes.zhadoop": "nn1,nn2",
"conf.dfs.namenode.rpc-address.zhadoop.nn1": "hadoop-m1:8020",
"conf.dfs.namenode.rpc-address.zhadoop.nn2": "hadoop-m2:8020",
"conf.dfs.client.failover.proxy.provider.zhadoop": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
}
}

backup_hdfs_repo:这个repo的名字
uri:填hdfs servicename
path:备份目录
conf*:hdfs其他配置项,按hadoop配置文件填

查询仓库:

1
GET _snapshot?pretty

如果出现权限报错:

1
"reason" : "Permission denied: user=elasticsearch, access=WRITE, inode=\"/\":hadoop:supergroup:drwxr-xr-x\n\tat

是因为hdfs没有启用安全认证,可以在hdfs预先建立好目录并授权

1
2
hdfs dfs -mkdir /user/elasticsearch
hdfs dfs -chown elasticsearch /user/elasticsearch

创建管理快照

快照写进之前建立的快照库

1
2
3
4
5
6
PUT _snapshot/backup_hdfs_repo/tk_snapshot?wait_for_completion=true&pretty
{
"indices": "tk_*",
"ignore_unavailable": true,
"include_global_state": false
}

url格式:_snapshot/快照库/快照名称
wait_for_completion: 是否阻塞直到完成快照,比较大可以设置false
indices: 做快照的index名称

可以用日期表达式,例如当天快照,tk_snapshot-2020.09.15:

1
2
#PUT /_snapshot/backup_hdfs_repo/<tk_snapshot-{now/d}>
PUT /_snapshot/backup_hdfs_repo/%3Ctk_snapshot-%7Bnow%2Fd%7D%3E?wait_for_completion=true&pretty

注意要把特殊符号转换,参考日期表达式官方文档

查询快照:

1
GET _snapshot/backup_hdfs_repo/tk_snapshot?pretty

可以用*号列出所有快照:

1
GET _snapshot/backup_hdfs_repo/*

删除快照

1
DELETE _snapshot/backup_hdfs_repo/tk_book_category_snapshot

还原快照

可以在本集群或者另外的机器还原,如果在另外的集群还原,要创建相同名字的快照仓库,集群结构和当前要一致。

1
POST _snapshot/backup_hdfs_repo/tk_snapshot/_restore?wait_for_completion=true

快照版本有兼容性要求,快照版本最多落后目标集群一个大版本。

  • 快照6.x,可以还原到集群7.x
  • 快照7.x,可以还原到集群8.x

可以重写index的setting:

1
2
3
4
5
6
7
8
9
POST /_snapshot/my_backup/snapshot_1/_restore
{
"indices": "index_1",
"ignore_unavailable": true,
"index_settings": {
"index.number_of_replicas": 0,
"index.refresh_interval": -1
}
}

index.number_of_shards 不能重写

Contents
  1. 1. 前期准备
    1. 1.1. 安装hdfs插件
    2. 1.2. 建立快照库
  2. 2. 创建管理快照
    1. 2.1. 查询快照:
    2. 2.2. 删除快照
  3. 3. 还原快照