关于 ElasticSearch index 数据丢失问题

2015-04-01 15:07:44 +08:00
 BlueWolf
昨天公司内网的机房空调挂掉,温度过高导致机房电力跳闸。刚好我那台虚拟机所在的主机没接UPS,断电挂掉……处理好后重启主机及虚拟机,发现ElasticSearch数据丢失严重,从21-30的index数据不复存在……555

想请教各位,ElasticSearch是将数据先缓存到内存中再延迟写入的吗?貌似这也不是丢失的原因,寻求各位帮忙解答

PS:
1. 机器在21-30都没有重启过,ElasticSearch也没有stop过,一直是startup状态
2. 有启用marvel,为了使用sense调试DSL
9917 次点击
所在节点    Elasticsearch
5 条回复
suriv520
2015-04-01 15:46:28 +08:00
准确地说,应该不是不存在了……默认情况下ES会非常频繁地把新数据写入硬盘并索引。你用head plugin看看ES的各个shard还有没有,是不是shard数据不完整还在recovery?

另,有没有做cluster?数据量多大?这些都会影响ES index的rebuilding。

PS, 稳定度上,一台机器跑ES还是比较靠谱的。两三台机器,最好别跑实时高负载同时indexing与searching的ES,基本上一个node崩,再加上rebalance与auto resharding,其它的node也就雪崩了。如果有个6-10台机器,差不多可以勉强感受到集群高可用特征了。
如果一天没有几百G的数据,ES压力不大,还是比较靠谱的。
suriv520
2015-04-01 15:51:22 +08:00
P.S. 如果是存log数据,且数据规模远远超过jvm的内存大小,ES在复杂查询上的效率比较不乐观。比如,5个node,每个node 20G RAM,16core CPU的cluster,每天产生100G数据,查询7天的数据,做个简单的聚合,查询时间基本上在5s-20s,这个效率是没法拿到生产线上给客户操的。
Yuansir
2015-04-01 16:02:21 +08:00
看来 snapshot 还是蛮有必要的
BlueWolf
2015-04-01 17:21:57 +08:00
@suriv520 就一台虚拟机在跑,没有cluster,存的是MySQL query日志。自己在研发数据库审计方面的产品,用到的测试数据数据量很小,目前data目录才9.5M

安装head plugin 后显示“集群健康值: yellow (53 of 106)”
BlueWolf
2015-04-01 17:42:05 +08:00
@suriv520 配置记错了,目前数据量是150M

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/180866

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX