【发布时间】:2017-09-03 13:46:54
【问题描述】:
我将 logstash 用于 ETL 目的,并且在弹性搜索中有 3 个索引。我可以同时通过 3 个不同的 logtash 进程将文档插入到我的 3 个索引中以提高并行性,还是应该将文档插入到 1 个索引中时间。
我的弹性搜索集群配置如下: 3个数据节点 1 个客户端节点
3 个数据节点 - 64 GB RAM、SSD 磁盘 1 个客户端节点 - 8 GB RAM
碎片 - 20 个碎片 复制品 - 1 谢谢
【问题讨论】:
我将 logstash 用于 ETL 目的,并且在弹性搜索中有 3 个索引。我可以同时通过 3 个不同的 logtash 进程将文档插入到我的 3 个索引中以提高并行性,还是应该将文档插入到 1 个索引中时间。
我的弹性搜索集群配置如下: 3个数据节点 1 个客户端节点
3 个数据节点 - 64 GB RAM、SSD 磁盘 1 个客户端节点 - 8 GB RAM
碎片 - 20 个碎片 复制品 - 1 谢谢
【问题讨论】:
一如既往地视情况而定。 Elasticsearch 的分布概念是基于分片的。由于索引的分片存在于不同的节点上,因此您会自动分散负载。
但是,如果 Logstash 是您的瓶颈,您可能会通过运行多个进程来获得性能。虽然如果在一台机器上运行多个 LS 进程是否会产生积极影响是值得怀疑的。
简短的回答:并行 3 个索引没有多大意义,但如果 Logstash 是您的瓶颈,那么并行运行这些索引(在不同的机器上)可能是有意义的。
PS:最大的性能改进通常是将请求批处理在一起,但 Logstash 会这样做by default。
【讨论】:
-w command line option),而不是添加更多Logstash实例。