elasticsearch - 从s3存储库还原时快照不存在错误

标签 elasticsearch amazon-s3 elasticsearch-5

我刚刚在s3存储库上创建了一个小索引的快照。现在,我正在尝试还原它,它说找不到快照。
我创建的快照来自elasticearch 2.3,我正尝试在Elasticsearch 5.1.1上恢复。我没有意识到某些兼容性问题吗?

2017-02-01T01:38:32,669][INFO ][o.e.r.RepositoriesService] [development] update repository [elasticsearch]
[2017-02-01T01:38:33,552][WARN ][o.e.s.RestoreService     ] [development] [elasticsearch:backupname.17-01-31-1024] failed to restore snapshot
org.elasticsearch.snapshots.SnapshotRestoreException: [elasticsearch:backupname.17-01-31-1024]snapshot does not exist
    at org.elasticsearch.snapshots.RestoreService.restoreSnapshot(RestoreService.java:199) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:89) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:49) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$3.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[2017-02-01T01:38:33,552][WARN ][r.suppressed             ] path: /_snapshot/elasticsearch/backupname.17-01-31-1024/_restore, params: {repository=elasticsearch, wait_for_completion=true, snapshot=backupname.17-01-31-1024}
org.elasticsearch.snapshots.SnapshotRestoreException: [elasticsearch:backupname.17-01-31-1024]snapshot does not exist
    at org.elasticsearch.snapshots.RestoreService.restoreSnapshot(RestoreService.java:199) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:89) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:49) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$3.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]

另外,在ES 2.3上还原相同快照时,我没有收到错误消息
我使用GET / _snapshot / elasticsearch / _all api检查快照是否存在。得到了以下回应:
{
      "snapshot": "backup.backupname.17-01-31-1024",
      "version_id": 2030099,
      "version": "2.3.0",
      "indices": [
        "index_name"
      ],
      "state": "SUCCESS",
      "start_time": "2017-02-01T06:24:06.540Z",
      "start_time_in_millis": 1485930246540,
      "end_time": "2017-02-01T06:24:07.635Z",
      "end_time_in_millis": 1485930247635,
      "duration_in_millis": 1095,
      "failures": [],
      "shards": {
        "total": 2,
        "failed": 0,
        "successful": 2
      }
    }

最佳答案

从日志中,我看到:

/_snapshot/elasticsearch/backupname.17-01-31-1024/_restore

您确定快照名称为elasticsearch:backupname.17-01-31-1024吗?

您可以检查
GET /_snapshot/elasticsearch/_all

如果快照存在,请输出快照状态。如果不成功,则表示快照未正确完成。

更新:在我看来,您受到类似的错误https://discuss.elastic.co/t/elasticsearch5-restore-snapshot-from-2-4/66488的影响

好了,基本的解决方法是将其还原到2.3版中,然后关闭群集并从5版开始启动该群集,因为此时索引将被升级,或者等待错误修正。

尽管我不确定ES 5是否可以直接从v2.3恢复,因为介于v2.4之间。

关于elasticsearch - 从s3存储库还原时快照不存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974390/

相关文章:

amazon-web-services - S3 存储桶策略 IAM 角色显示为 API key

windows - 在 Windows 上使用 Staging S3A Committer 写入 S3 时出现 UnsatisfiedLinkError

elasticsearch - 将多类型索引迁移到单类型索引

elasticsearch - 策展人重新索引操作-动态索引名称

javascript - 有时会在Elasticsearch中收到错误NoLivingConnectionsError

ruby-on-rails - 带有 Amazon S3 的 Carrierwave 配置,托管在 Heroku 上

nginx - 解析Nginx日志时出现Logstash _grokparsefailure

node.js - 弹性对象内部的Elasticsearch搜索数组

amazon-web-services - 如何在 Elasticsearch 5.6 中删除按查询删除的已完成任务?

elasticsearch - 在ElasticSearch上索引聚合数据的最佳方法是什么