elasticsearch备份到hdfs
前期准备
安装hdfs插件
elasticsearch快照备份到hdfs,先安装hdfs插件,可以到官方下载zip格式,或者线上安装
官方安装文档
1 | sudo bin/elasticsearch-plugin install repository-hdfs |
建立快照库
然后建立hdfs repository,这里如果hdfs是主备master,把core-site.xml里面的相关配置按es的格式写进去
官方配置解析
1 | PUT _snapshot/backup_hdfs_repo |
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 | hdfs dfs -mkdir /user/elasticsearch |
创建管理快照
快照写进之前建立的快照库
1 | PUT _snapshot/backup_hdfs_repo/tk_snapshot?wait_for_completion=true&pretty |
url格式:_snapshot/快照库/快照名称
wait_for_completion: 是否阻塞直到完成快照,比较大可以设置false
indices: 做快照的index名称
可以用日期表达式,例如当天快照,tk_snapshot-2020.09.15:
1 | #PUT /_snapshot/backup_hdfs_repo/<tk_snapshot-{now/d}> |
注意要把特殊符号转换,参考日期表达式官方文档
查询快照:
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 | POST /_snapshot/my_backup/snapshot_1/_restore |
index.number_of_shards 不能重写