ElasticSearch 單臺服務器部署多個節點

轉載:https://www.cnblogs.com/wxw16/p/6160186.htmlhtml

通常狀況下單臺服務器只會部署一個ElasticSearch node,可是在學習過程當中,不少狀況下會須要實現ElasticSearch的分佈式效果,因此須要啓動多個節點,可是學習開發環境(不想開多個虛擬機實現多個服務器的效果),因此就想着在一臺服務器上部署多個結點(下文以2個結點做爲例子),兩個節點分別稱爲實例1、二。java

一、首先將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 -l total 145568 drwxr-xr-x 12 wuxiwei staff 408 12 11 16:23 elasticsearch-5.0.2 drwxr-xr-x 12 wuxiwei staff 408 12 11 16:27 elasticsearch-5.0.2-node-2

二、主要工做就是修改elasticsearch.yml配置文件。

實例二:config目錄下的elasticsearch.yml內容node

將node.name: node-1 修改成 node-2,sql

三、分別開啓兩個節點

# 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 OK content-type: application/json; charset=UTF-8 content-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查看節點效果shell

踩過的坑

(1)若是修改了配置文件的 http.porttransport.tcp.port項,必定要將各個節點的值設置不一樣,不然會出現佔用的狀況。正常若是不修改,默認會分配值。json

(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: falsemarkdown

(3)示例二不能開啓,報以下錯誤:app

[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 documents org.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文件下的文件清空curl

相關文章
相關標籤/搜索