Elasticsearch学习笔记1
Elasticsearch 是一个高度可扩展的全文搜索引擎,广泛用于实时数据分析和日志聚合。这篇学习笔记主要涵盖了几个关键的配置和操作,对于理解和优化Elasticsearch集群至关重要。 我们关注的是**监控 fielddata**。Fielddata 是Elasticsearch在内存中存储字段值以便进行排序和聚合的一种方式。高频率的fielddata回收可能表示资源紧张或性能问题。通过使用`indices-stats API`和`nodes-stats API`,你可以分别按索引和节点监控fielddata的内存使用情况,而`level=indices`参数则允许你查看每个索引节点的详细信息。要监控每个字段的内存使用,可以在请求中使用`?fields=*`。 接下来是**设置分片数**。在创建或更新索引时,可以通过`PUT /my_index/_settings`命令调整副本数量,例如将`number_of_replicas`设置为1,以控制索引的复制级别。 **索引切换(重命名索引)**是通过`POST /_aliases`操作完成的,这使得在不影响应用程序的情况下更改索引引用成为可能。在示例中,`logs_current`别名从`logs_2014-09`切换到了`logs_2014-10`,同时更新了`last_3_months`别名。 **迁移索引**涉及改变索引的分配策略。在示例中,`node.box_type`参数被设置为`strongbox_type`,然后在索引设置中添加`index.routing.allocation.include.box_type`,这样索引就会被分配到满足条件的节点上。 **关闭索引**对于维护和更新是必要的。`POST /logs_2014-01-*/_flush`命令会刷写索引以清理事务日志,`POST /logs_2014-01-*/_close`关闭索引,而`POST /logs_2014-01-*/_open`则可以重新打开它们。 讨论了**fielddata设置**。Fielddata主要用于分析过的字符串字段,但其内存消耗较大。现在推荐对支持doc_values的字段仅设置`doc_values`,默认为true。对于分析过的字符串字段,可以设置`fielddata`为`lazy`或`eager`来控制加载时机,并使用`global_ordinals`来处理全局有序值。`fielddata.filters`允许根据频率或正则表达式过滤数据。未来如果能自动判断何时需要提前构建全局有序值,那么`global_ordinals`的设置可能会更简化。 理解并有效应用这些概念和操作,将有助于提升Elasticsearch集群的性能、稳定性和资源利用率。在实际环境中,应定期监控和调整这些设置,以确保系统的健康运行。
剩余16页未读,继续阅读
- 粉丝: 44
- 资源: 303
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助