开发者社区> 冷月_wjh> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何将Elasticsearch的快照备份至OSS

简介: 前言 Elasticsearch 是一个开源的分布式 RESTful 搜索和分析引擎。它可以在近实时条件下,存储,查询和分析海量的数据。它还支持将快照备份至HDFS/S3上面,而阿里云OSS兼容S3的API,本文将介绍如何使用ES的Repository-S3插件将快照备份至OSS。
+关注继续查看

前言

Elasticsearch 是一个开源的分布式 RESTful 搜索和分析引擎。它可以在近实时条件下,存储,查询和分析海量的数据。它还支持将快照备份至HDFS/S3上面,而阿里云OSS兼容S3的API,本文将介绍如何使用ES的Repository-S3插件将快照备份至OSS。

部署与配置

首先,我们需要安装repository-s3,可以参考官方文档:
https://www.elastic.co/guide/en/elasticsearch/plugins/7.2/repository-s3.html

启动ES,我们可以从log中看到,ES已经load了这个plugin:

[2019-07-15T14:12:09,225][INFO ][o.e.p.PluginsService     ] [master] loaded module [aggs-matrix-stats]
[2019-07-15T14:12:09,225][INFO ][o.e.p.PluginsService     ] [master] loaded module [analysis-common]
[2019-07-15T14:12:09,225][INFO ][o.e.p.PluginsService     ] [master] loaded module [ingest-common]
[2019-07-15T14:12:09,226][INFO ][o.e.p.PluginsService     ] [master] loaded module [ingest-geoip]
[2019-07-15T14:12:09,226][INFO ][o.e.p.PluginsService     ] [master] loaded module [ingest-user-agent]
[2019-07-15T14:12:09,226][INFO ][o.e.p.PluginsService     ] [master] loaded module [lang-expression]
[2019-07-15T14:12:09,226][INFO ][o.e.p.PluginsService     ] [master] loaded module [lang-mustache]
[2019-07-15T14:12:09,227][INFO ][o.e.p.PluginsService     ] [master] loaded module [lang-painless]
[2019-07-15T14:12:09,227][INFO ][o.e.p.PluginsService     ] [master] loaded module [mapper-extras]
[2019-07-15T14:12:09,227][INFO ][o.e.p.PluginsService     ] [master] loaded module [parent-join]
[2019-07-15T14:12:09,227][INFO ][o.e.p.PluginsService     ] [master] loaded module [percolator]
[2019-07-15T14:12:09,227][INFO ][o.e.p.PluginsService     ] [master] loaded module [rank-eval]
[2019-07-15T14:12:09,228][INFO ][o.e.p.PluginsService     ] [master] loaded module [reindex]
[2019-07-15T14:12:09,228][INFO ][o.e.p.PluginsService     ] [master] loaded module [repository-url]
[2019-07-15T14:12:09,228][INFO ][o.e.p.PluginsService     ] [master] loaded module [transport-netty4]
[2019-07-15T14:12:09,228][INFO ][o.e.p.PluginsService     ] [master] loaded plugin [repository-s3]
[2019-07-15T14:12:12,375][INFO ][o.e.d.DiscoveryModule    ] [master] using discovery type [zen] and seed hosts providers [settings]
[2019-07-15T14:12:12,801][INFO ][o.e.n.Node               ] [master] initialized
[2019-07-15T14:12:12,802][INFO ][o.e.n.Node               ] [master] starting ...

然后,我们需要将OSS使用的Access Key和Secret Key配置到ES去,分别执行下面的命令:

bin/elasticsearch-keystore add s3.client.default.access_key
bin/elasticsearch-keystore add s3.client.default.secret_key

运行

首先,我们创建一个备份:

[root@master ~]# curl -XPUT 'http://localhost:9200/_snapshot/test' -H 'Content-Type: application/json' -d '{ "type": "s3", "settings": { "bucket": "hadoop-oss-test", "endpoint": "oss-cn-zhangjiakou-internal.aliyuncs.com"} }'
{"acknowledged":true}

NOTE: 上面的命令默认使用https协议来传输数据,如果想使用http协议,需要将"protocol": "http", "disable_chunked_encoding": true加到settings里面(这个特性将会在新版本发布后可用)。

可以使用下面的命令来确实创建是否成功:

[root@master ~]# curl -XGET localhost:9200/_snapshot/test?pretty
{
  "test" : {
    "type" : "s3",
    "settings" : {
      "bucket" : "hadoop-oss-test",
      "endpoint" : "oss-cn-zhangjiakou-internal.aliyuncs.com"
    }
  }
}

我们可以写入一些测试数据到ES,然后看下目前集群的索引信息:

[root@master ~]# curl -X GET "localhost:9200/_cat/indices?v"
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   sales    89ouBy6RQsuT34QRbn_jeQ  10   0     271786            0       15mb           15mb
green  open   customer fQCMEvXsQOu0UgMm1SAJlA   5   0      10000            0      717kb          717kb

假设我们只备份sales索引:

[root@master ~]# curl -XPUT 'http://localhost:9200/_snapshot/test/sales' -H 'Content-Type: application/json' -d '{ "indices": "sales" }'
{"accepted":true}

然后我们可以从OSS控制台看到备份的结果:
_2019_07_15_2_23_28

现在我们再往sales索引里面写一些数据:

[root@master ~]# curl -X GET "localhost:9200/_cat/indices?v"
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   sales    89ouBy6RQsuT34QRbn_jeQ  10   0     281502            0     15.6mb         15.6mb
green  open   customer fQCMEvXsQOu0UgMm1SAJlA   5   0      10000            0      717kb          717kb

我们利用刚才备份到OSS的快照来恢复sales索引,分别执行下面的命令:

[root@master ~]# curl -XPOST localhost:9200/sales/_close
{"acknowledged":true,"shards_acknowledged":true,"indices":{"sales":{"closed":true}}}
[root@master ~]# curl -XPOST 'http://localhost:9200/_snapshot/test/sales/_restore?pretty'
{
  "accepted" : true
}
[root@master ~]# curl -X GET "localhost:9200/_cat/indices?v"
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   sales    89ouBy6RQsuT34QRbn_jeQ  10   0     271786            0       15mb           15mb
green  open   customer fQCMEvXsQOu0UgMm1SAJlA   5   0      10000            0      717kb          717kb

我们可以看到,sales索引跟之前的一致。

参考资料

https://www.elastic.co/guide/en/elasticsearch/plugins/7.2/repository-s3.html

https://www.elastic.co/cn/products/elasticsearch

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ElasticSearch7入门(二)批量导入数据(Postman与Kibana)
ElasticSearch7入门(二)批量导入数据(Postman与Kibana)
308 0
学习 Elasticsearch 的相关使用(二)
学习 Elasticsearch 的相关使用
64 0
Elasticsearch安装:单机版和集群版
Elasticsearch安装:单机版和集群版
82 0
如何系统的学习 Elasticsearch ?
这是上一次技术直播里六个子主题中的最后一个主题的扩展版本。近期又有读者问到类似问题,我认为非常有必要花长时间梳理后跟大家分享一下。
740 0
抢先 | 支持sql的Elasticsearch6.3全景概览
1、Elasticsearch6.3 特性概览 1.1、支持Sq 像操作Mysql一样使用Elasticsearch,缩减DSL的学习成本,更多人爱上ES的特性。
48 0
Es使用指南之Elasticsearch文档读写模型实现原理
本文详细介绍了ElasticSearch文档的读写模型的设计思路,涉及到写模型及其异常处理、读模型及其异常处理、主备负载模型背后隐含的设计缺陷与ElasticSearch在异常情况带来的影响。
5367 0
Elasticsearch-单机部署避坑指南
引言   ElasticSearch是一个基于Lucene的搜索引擎,它提供了一个基于RESTful web接口的分布式多用户的全文搜索引擎。ElasticSearch可以用来存储需要检索和统计的数据,它支持聚合、百分比、分段统计等,也可以用来存储日志,例如ELK(Elasticsearch+Logstash+Kibana)日志分析系统。
3212 0
ElasticSearch数据备份与恢复
查看所有仓库:curl 192.168.40.x:9200/_snapshot/_all 默认为空,需要创建仓库,注意仓库需要共享文件系统。这时候可以选择使用: NFS HDFS ①.NFS(太麻烦,不推荐) 需要在elasticsearch.
4126 0
JarSearch
个人做的小工具分享给大家~~。 支持从压缩文件搜索文件,特别是根据部分类文件名在jar里查找文件,比较方便,效率也还不错。 也支持从目录查找       http://pan.
646 0
+关注
12
文章
0
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载