首页 > 解决方案 > 如何为海量数据设置弹性集群?

问题描述

我被要求为大约 100 TB 的文本数据设置弹性搜索集群!我已经知道如何在弹性中进行搜索和聚合,但我真的不知道如何为这样的大数据设置具有多个节点的集群!我的意思是有多少大师,佐伊饲养员,CD,......?或者我需要一台用于activeMQ的专用服务器吗?...

有什么文件可以解释吗?

标签: elasticsearchfull-text-searchbigdata

解决方案


ES 是一个分布式系统,创建一个有 1 个节点或 1000 个节点的集群并没有太大区别。

在您的情况下,您可以做的是拥有一些主节点和更多数据节点来创建一个大集群。

主节点负责轻量级集群范围的操作,例如创建或删除索引、跟踪哪些节点是集群的一部分,以及决定将哪些分片分配给哪些节点。

数据节点保存包含您已索引的文档的分片。数据节点处理数据相关的操作,如 CRUD、搜索和聚合。这些操作是 I/O 密集型、内存密集型和 CPU 密集型的。监控这些资源并在它们过载时添加更多数据节点非常重要。

您可以选择小尺寸的主节点(如果它们不保存数据)和大尺寸的数据节点。

以下是主节点的配置。

http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
cluster.name: elasticsearch_hobbes ## note this cluster name must be same for all the es nodes in the same cluster
node.name: "elasticsearch_001_master"// give 002 for other master node
node.master: true
**node.data: false (This master node will not hold the data)**
path.data: /usr/local/var/elasticsearch/
path.logs: /usr/local/var/log/elasticsearch/
discovery.zen.ping.multicast.enabled: false

下面是数据节点的配置。

cluster.name: elasticsearch_hobbes
node.name: "node2"
node.master: false
node.data : true
http.port: 9201
discovery.zen.ping.multicast.enabled: false
script.engine.groovy.inline.aggs: on
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

然后,您可以通过单击http://localhost:9200/_plugin/kopf/#!/cluster转到KOPF plugin您的主节点并查看下面的屏幕,该屏幕显示了集群中的所有三个节点。

注意:- 请按照https://github.com/lmenezes/elasticsearch-kopf安装 KOPF 插件。如果您在设置集群时遇到任何问题,请告诉我。


推荐阅读