ElasticSearch ——单台服务器部署多个节点

作者 : 开心源码 本文共3057个字,预计阅读时间需要8分钟 发布时间: 2022-05-11 共49人阅读

一般情况下单台服务器只会部署一个 ElasticSearch node,但是在学习过程中,很多情况下会需要实现 ElasticSearch 的分布式效果,所以需要启动多个节点,但是学习开发环境(不想开多个虚拟机实现多个服务器的效果),所以就想着在一台服务器上部署多个结点(下文以2个结点作为例子),两个节点分别称为实例一、二。

首先将 elasticsearch-5.0.2 文件夹再复制一份

# wuxiwei @ wuxiwei in ~/software$ cp -R elasticsearch-5.0.2 elasticsearch-5.0.2-node-2# wuxiwei @ wuxiwei in ~/software$ ls -ltotal 145568drwxr-xr-x  12 wuxiwei  staff       408 12 11 16:23 elasticsearch-5.0.2drwxr-xr-x  12 wuxiwei  staff       408 12 11 16:27 elasticsearch-5.0.2-node-2

主要工作就是修改 elasticsearch.yml 配置文件

实例二:config目录下的 elasticsearch.yml 内容

将 node.name: node-1 修改为 node-2,

分别开启两个节点

# wuxiwei @ wuxiwei in ~/software/elasticsearch-5.0.2$ ./bin/elasticsearch

# wuxiwei @ wuxiwei in ~/software/elasticsearch-5.0.2$ cd ../elasticsearch-5.0.2-node-2# wuxiwei @ wuxiwei in ~/software/elasticsearch-5.0.2-node-2$ ./bin/elasticsearch

查询能否成功

$ curl -i -XGET 'http://localhost:9200/_cluster/health?pretty'\;HTTP/1.1 200 OKcontent-type: application/json; charset=UTF-8content-length: 457{ "cluster_name" : "my", "status" : "green", "timed_out" : false, "number_of_nodes" : 2, "number_of_data_nodes" : 2, "active_primary_shards" : 20, "active_shards" : 40, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0}

也能通过 Kibana 查看节点效果

踩过的坑

(1)假如修改了配置文件的 http.port、transport.tcp.port 项,肯定要将各个节点的值设置不同,否则会出现占使用的情况。正常假如不修改,默认会分配值。

(2)示例二开启时,实例一报警告(实际操作中能忽略,不然将无法实现 ES 的分布式集群作使用):

[2016-12-11T18:06:43,678][WARN ][o.e.d.z.ElectMasterService] [node-1] value for setting "discovery.zen.minimum_master_nodes" is too low. This can result in data loss! Please set it to at least a quorum of master-eligible nodes (current value: [-1], total number of master-eligible nodes used for publishing in this round: [2])

是由于默认情况下 discovery.zen.minimum_master_nodes=1 一台服务器只可以有一个主节点,所以在实例二的配置文件中能增加 node.master: false。

(3)示例二不可以开启,报如下错误:

[2016-12-11T16:53:02,711][INFO ][o.e.d.z.ZenDiscovery     ] [node-2] failed to send join request to master [{node-1}{vP19PMOyT2ilJKRAqgn78w}{jDULCExERXGHp4VXpbyuJA}{127.0.0.1}{127.0.0.1:9300}], reason [RemoteTransportException[[node-1][127.0.0.1:9300][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {node-2}{vP19PMOyT2ilJKRAqgn78w}{qhDDVzwZQ0GXZXhIMmpGKA}{127.0.0.1}{127.0.0.1:9301}, found existing node {node-1}{vP19PMOyT2ilJKRAqgn78w}{jDULCExERXGHp4VXpbyuJA}{127.0.0.1}{127.0.0.1:9300} with the same id but is a different node instance]; ][2016-12-11T16:53:02,911][INFO ][o.e.x.m.e.Exporters      ] [node-2] skipping exporter [default_local] as it isn't ready yet[2016-12-11T16:53:02,912][ERROR][o.e.x.m.AgentService     ] [node-2] exception when exporting documentsorg.elasticsearch.xpack.monitoring.exporter.ExportException: exporters are either not ready or faulty   at org.elasticsearch.xpack.monitoring.exporter.Exporters.export(Exporters.java:188) ~[x-pack-5.0.2.jar:5.0.2]   at org.elasticsearch.xpack.monitoring.AgentService$ExportingWorker.run(AgentService.java:208) [x-pack-5.0.2.jar:5.0.2]   at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]

是由于复制的 elasticsearch 文件夹下包含了 data 文件中示例一的节点数据,需要把示例二 data 文件下的文件清空。

作者:wuxiwei
出处:http://t.cn/RIA6XFh

声明通知

Python实战班、自动化运维班、区块链正在招生中

各位小伙伴们,欢迎试听和咨询:

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » ElasticSearch ——单台服务器部署多个节点

发表回复