参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/modules-snapshots.html

备份数据之前,要创建一个仓库来保存数据,仓库的类型支持Shared filesystem, Amazon S3, HDFS和Azure Cloud。
fs仓库示例:
需要在elasticsearch.yml添加如下配置:
path.repo: ["/data1/esdata/backup"]
注意:这里fs是Shared filesystem, such as a NAS,本地文件集群不支持,单节点可以用本地文件
curl -XPUT http://127.0.0.1:9200/_snapshot/backup_feeds -d'
{
"type": "fs",
"settings": {
"location": "feeds"
}
}'

hdfs仓库示例:
a.每个节点安装插件
/opt/17173/elasticsearch/bin/elasticsearch-plugin install repository-hdfs
b.从hadoop复制配置文件hdfs-site.xml和core-site.xml到elasticsearch/config目录下
c./opt/17173/elasticsearch/plugins/repository-hdfs/plugin-security.policy增加如下配置,注意行注释不要用#
permission java.lang.RuntimePermission "accessDeclaredMembers";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "shutdownHooks";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission javax.security.auth.AuthPermission "doAs";
permission javax.security.auth.AuthPermission "getSubject";
permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
permission java.security.AllPermission;
permission java.util.PropertyPermission "*", "read,write";
permission javax.security.auth.PrivateCredentialPermission "org.apache.hadoop.security.Credentials * \"*\"", "read";
d.config/jvm.options增加一行
-Djava.security.policy=file:///opt/17173/elasticsearch/plugins/repository-hdfs/plugin-security.policy

e.以上配置每个节点保持一致,然后逐个节点重启

1.创建一个仓库(creating the repository)
curl -XPUT http://127.0.0.1:9200/_snapshot/backup_feeds -d'
{
"type": "hdfs",
"settings": {
"uri": "hdfs://hadoop73:9000/",
"path": "elasticsearch/respositories/feeds",
"compress": "true",
"chunk_size": "10mb",
"load_defaults": "true",
"user":"hadoop",
"conf_location": ["/opt/17173/elasticsearch/core-site.xml","/opt/17173/elasticsearch/hdfs-site.xml"]
}
}'

查看仓库信息
curl -XGET 'http://localhost:9200/_snapshot/backup_feeds?pretty'

2.备份索引
curl -XPUT http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_20170920?wait_for_completion=true?pretty -d'
{
"indices": "feed_info,play_following"
}'

所有索引进行快照:
 curl -XPUT "localhost:9200/_snapshot/backup_feeds/snapshot_20170920?wait_for_completion=true?pretty"

3、查看快照信息
curl -XGET http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_20170920
查看所有快照信息
curl -XGET http://127.0.0.1:9200/_snapshot/backup_feeds/_all
查看快照状态
curl -XGET http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_20170920/_status
4.删除备份
curl -XDELETE http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_20170920

5恢复
curl -XPOST http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_20170920/_restore
   恢复所有索引:
curl -XPOST "localhost:9200/_snapshot/backup_feeds/snapshot_20170920/_restore?wait_for_completion=true"
   恢复某个索引:
curl -XPOST "localhost:9200/_snapshot/backup_feeds/snapshot_20170920/_restore?wait_for_completion=true" -d '{"indices":"feed_info","ignore_unavailable":"true"}'
注意:
快照恢复前需要关掉索引
curl -XPOST "localhost:9200/feed_info/_close"
curl -XPOST "localhost:9200/play_following/_close"

开启索引
curl -XPOST "localhost:9200/my_index/_open"

每天定时备份索引,删除30天之前备份数据 es_backup.sh
#!/bin/bash
##每天定时备份索引,删除30天之前备份数据
#0 0 * * * sh /opt/17173/elasticsearch/bin/es_backup.sh >> /tmp/es_backup.log
cd `dirname $0`
BIN_DIR=`pwd`

DATE=`date +%Y%m%d`
echo "备份ES索引:$DATE "
curl -XPUT http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_${DATE}?wait_for_completion=true?pretty -d'
{
"indices": "feed_info,play_following"
}'
echo ""
DEL_DATE=`date +%Y%m%d --date "30 days ago"`
echo "删除ES索引备份:$DEL_DATE "
curl -XDELETE http://127.0.0.1:9200/_snapshot/backup_feeds/snapshot_${DEL_DATE}
echo ""

ElasticSearch索引快照的更多相关文章

  1. Elasticsearch的快照备份

    该文档适用于备份使用NAS的仓库类型.所有Elasticsearch集群中的服务通过挂载NAS目录来存放备份快照数据. 1.创建备份仓库 创建一个仓库名称:backup curl -H "C ...

  2. Elasticsearch索引生命周期管理方案

    一.前言 在 Elasticsearch 的日常中,有很多如存储 系统日志.行为数据等方面的应用场景,这些场景的特点是数据量非常大,并且随着时间的增长 索引 的数量也会持续增长,然而这些场景基本上只有 ...

  3. Elasticsearch索引(company)_Centos下CURL增删改

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 1.Elasticsearch索引说明 a. 通过上面几篇博客已经将Elastics ...

  4. ES3:ElasticSearch 索引

    ElasticSearch是文档型数据库,索引(Index)定义了文档的逻辑存储和字段类型,每个索引可以包含多个文档类型,文档类型是文档的集合,文档以索引定义的逻辑存储模型,比如,指定分片和副本的数量 ...

  5. Elasticsearch索引和文档操作

    列出所有索引 现在来看看我们的索引 GET /_cat/indices?v 响应 health status index uuid pri rep docs.count docs.deleted st ...

  6. Elasticsearch索引原理

    转载 http://blog.csdn.net/endlu/article/details/51720299 最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计 ...

  7. ElasticSearch 索引 剖析

    ElasticSearch index 剖析 在看ElasticSearch权威指南基础入门中关于:分片内部原理这一小节内容后,大致对ElasticSearch的索引.搜索底层实现有了一个初步的认识. ...

  8. Elasticsearch 索引、更新、删除文档

    一.Elasticsearch 索引(新建)一个文档的命令: curl XPUT ' http://localhost:9200/test_es_order_index/test_es_order_t ...

  9. Elasticsearch 索引的全量/增量更新

    Elasticsearch 索引的全量/增量更新 当你的es 索引数据从mysql 全量导入之后,如何根据其他客户端改变索引数据源带来的变动来更新 es 索引数据呢. 首先用 Python 全量生成 ...

随机推荐

  1. ubuntu 18.04 修改 固定ip

    Linux(ubuntu)下固定IP的方法   写在前面,问:为什么要固定ip.答:要知道固定IP的好处多多,随意搬动,固定共享地址,不怕断网等等 首先,我们要选取一个局域网内的IP,方法如下: 1. ...

  2. 【算法笔记】B1035 插入与归并

    1035 插入与归并 (25 分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直 ...

  3. 洛谷 P4269 / loj 2041 [SHOI2015] 聚变反应炉 题解【贪心】【DP】

    树上游戏..二合一? 题目描述 曾经发明了零件组装机的发明家 SHTSC 又公开了他的新发明:聚变反应炉--一种可以产生大量清洁能量的神秘装置. 众所周知,利用核聚变产生的能量有两个难点:一是控制核聚 ...

  4. SPOJ - DISUBSTR 求串中子串的个数

    \(height\)简单应用 #include<iostream> #include<cstdio> #include<cstring> #include<c ...

  5. 今日工作总结:jquery轮转效果的集成与前台页面banner的设计思路总结

    今日做了两个项目中的两个问题,现在特来总结一下,以便分享给更多的朋友们. 1.jquery轮转效果的集成 涉及到jquery的不同版本问题,解决办法是在后缀用jQuery代替$.项目地址在:121.4 ...

  6. Centos 添加swap

    swap是linux系统的虚拟内存,物理内存不足时,会用到.生产环境,最好添加上,以防内存异常暴增时,系统出现问题. 查看系统是否有swap分区,执行如下命令,若Swap那一行都为0,则表示没有Swa ...

  7. myeclipse更改后台代码不用重启tomcat的方法

    myeclipse更改后台代码不用重启tomcat的方法   方法1:在WebRoot下的META-INF文件夹中新建一个名为context.xml文件,里面添加如下内容(要区分大小写): <C ...

  8. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  9. JNI与NDK的区别

    JNI是Java调用Native机制,是Java语言自己的特性全称为Java Native Interface,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual ...

  10. jQuery对新添加的控件添加响应事件

    1. 通过id和类控制 <html> <head> <script src="jquery.js"></script> <sc ...