面试官:想了解大数据量的运维能力。
解答:索引数据的规划,应在前期做好规划,正所谓“设计先行,编码在后”,这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户检索或者其他业务受到影响。
如何调优,正如问题1所说,这里细化一下:
3.1 动态索引层面
基于模板+时间+rollover api滚动创建索引,举例:设计阶段定义:blog索引的模板格式为:blog_index_时间戳的形式,每天递增数据。
这样做的好处:不至于数据量激增导致单个索引数据量非常大,接近于上线2的32次幂-1,索引存储达到了TB+甚至更大。
一旦单个索引很大,存储等各种风险也随之而来,所以要提前考虑+及早避免。
3.2 存储层面
冷热数据分离存储,热数据(比如最近3天或者一周的数据),其余为冷数据。
对于冷数据不会再写入新数据,可以考虑定期force_merge加shrink压缩操作,节省存储空间和检索效率。
3.3 部署层面
一旦之前没有规划,这里就属于应急策略。
结合ES自身的支持动态扩展的特点,动态新增机器的方式可以缓解集群压力,注意:如果之前主节点等规划合理,不需要重启集群也能完成动态新增的。
我想从elasticsearch索引中删除一些数据,而不是完整的索引,我的问题是如何找到所有可用碎片的文档id。对此的查询是什么?? 我使用了以下查询来删除特定文档,但它抛出错误,所以我认为我的文档ID是错误的。请让我知道如何获取可用分片的正确文档ID。 我的数据流是postgresql到logstash到elasticsearch到kibana。但问题是索引大小正在增加很多,它进入GB的内存,而
问题内容: 我在ElasticSearch和Rails时遇到问题,由于attr_protected,其中一些数据未正确索引。Elastic Search在哪里存储索引数据?检查实际的索引数据是否错误将很有用。 检查映射对您没有帮助,将列出该字段。 问题答案: 探索您的ElasticSearch集群的最简单方法可能是使用elasticsearch -head。 您可以通过以下方式安装它: 然后(假设
问题内容: 我试图了解如何在Elasticsearch上优化索引。让我澄清我的需求; 我现在有两个指标。可以这样说和(两个索引可以看到大致相同的大小) 我有6台专用于Elasticsearch的机器(我们可以说完全相同的硬件) 我的elasticsearch用法中最重要的部分是写作,因为我实时进行大量写作。 所以我的问题是,如何使用这6台机器优化写入操作? 我是否应该将机器分为两部分,例如3台机器
问题内容: 我在同一台Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用tyre gem)。看来这两个实例都共享相同的elasticsearch索引,这显然不是我想要的。 如何使生产和登台实例使用单独的实例? 问题答案: 您需要覆盖索引名称。假设您要绑定ActiveRecord,它将根据相关模型创建索引名称。您可以使用这样的前缀来调整名称; 然后会创建一个名为的索引,以此类推。
它在错误下面抛出: 提示我,如何删除ElasticSearch中特定类型索引中的多个或所有文档。
问题内容: 我正在尝试将JSON文件批量索引到新的Elasticsearch索引中,但无法这样做。我在JSON中有以下示例数据 我在用 当我尝试使用Elasticsearch的标准批量索引API时,出现此错误 任何人都可以帮助索引这种类型的JSON吗? 问题答案: 您需要做的是读取该JSON文件,然后使用端点期望的格式构建一个批量请求,即,一行用于命令,一行用于文档,并用换行符分隔…冲洗并重复以下