amazon-web-services - Elasticsearch 快照失败 - 无法恢复
问题描述
我正在尝试将数据从一个实例移动到另一个弹性搜索实例。我已经创建了此处提到的角色和 s3 存储桶。
我已经在两个实例中注册了存储库,快照创建成功,s3 有新对象。但是当我运行恢复命令时。我收到如下错误
:[{"type":"snapshot_restore_exception","reason":"[test:sample5/xcMBVd21SQky8E2TX8Z76xf] index [example] wasn't fully snapshotted - cannot restore"}]
我使用 python 脚本创建了一个快照,
path = '_snapshot/test/' + sampe_snap
url = host + path
payload = {
"indices": "example",
"include_global_state": False
}
r = requests.put(url, json=payload, auth=awsauth)
返回
{"accepted":true}
为了调试,我使用了 Kibana 并搜索了快照。它显示如下
GET _snapshot/test/sampe_snap
....
"indices" : [ "example" ],
"include_global_state" : false,
"state" : "PARTIAL",
"start_time" : "2021-02-04T11:14:22.153Z",
"start_time_in_millis" : 1612437262153,
"end_time" : "2021-02-04T11:14:22.554Z",
"end_time_in_millis" : 1612437262554,
"duration_in_millis" : 401,
"failures" : [ {
"index" : "example",
"index_uuid" : "example",
"shard_id" : 3,
"reason" : """java.nio.file.NoSuchFileException: Blob object [indices/TJz0FNoGQUfvJ5pbTFLyQ/3/index-f16nCDQoiRl4UV8vCFSA] not found: The specified key does not exist.
(Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey...;
为什么会失败?
解决方案
这里的问题是快照以PARTIAL
状态而不是SUCCESS
状态结束。
快照以 PARTIAL 状态结束的原因是由于索引内的 S3 存储库index-f16nCDQoiRl4UV8vCFSA
文件中的某些问题(shard 3
索引TJz0FNoGQUfvJ5pbTFLyQ
的快照索引 id example
)丢失。这是存储库损坏的明显案例。
"reason" : """java.nio.file.NoSuchFileException: Blob object [indices/TJz0FNoGQUfvJ5pbTFLyQ/3/index-f16nCDQoiRl4UV8vCFSA] not found: The specified key does not exist.
当集群负载很重(JVM > 80% 或 CPU 利用率 >80%)并且很少有节点从集群中退出时,会观察到这种存储库损坏。
解决此问题的一种方法是删除所有引用 index 的快照:example
。这将清理索引的 S3 快照文件,example
现在当您拍摄新快照时,一切都会重新开始。
为了更安全,我建议联系 AWS 支持来修复这种类型的存储库损坏。
推荐阅读
- nativescript - 自定义字体不适用于 Nativescript 空白模板
- symfony - Symfony3 onSecurityInteractiveLogin 注销并设置 flash
- html - 使用flexbox时如何使文本落在图像下方?
- c# - 如何在 C# GDI+ 中正确着色?
- python - 如何将 np 数组中的图像转换为与使用二进制读取读取该图像相同的格式
- node.js - 如何在 Google App Engine 上部署 node.js 应用程序,以便在用户转到应用程序 URL 时加载?
- javascript - Firebase响应后如何同时显示警报和刷新页面?
- django - django模型外键访问两个模型的属性
- unix - 用来自单独文件的名称替换文件名
- c# - AWS Cloud9 无法连接到 SSH 服务器 ubuntu@xx.xx.xxx.xx