Elasticsearch-集群增加節點


ES-在集群中加入節點

查看分片信息

FengZhendeMacBook-Pro:nacos FengZhen$ curl 'localhost:9200/_cat/shards?v'
index shard prirep state docs store ip node 
music 2 p STARTED 0 130b 127.0.0.1 Feng 
music 2 r UNASSIGNED 
music 3 p STARTED 1 3.1kb 127.0.0.1 Feng 
music 3 r UNASSIGNED 
music 4 p STARTED 0 130b 127.0.0.1 Feng 
music 4 r UNASSIGNED 
music 1 p STARTED 0 130b 127.0.0.1 Feng 
music 1 r UNASSIGNED 
music 0 p STARTED 0 130b 127.0.0.1 Feng 
music 0 r UNASSIGNED 

Music索引有5個主分片,而且都是激活的。未分配的分片代表為該索引配置的一組副本分片。因為只有1個節點,所以這些副本分片尚未分配

多數ES API會返回JSON,但是cat這組API是個特例。還有很多其他的API,它們對於獲取集群某個時間點的相關信息很有幫助,其格式對於人或者腳本而言都是很容易解析的。
未分配的副本分片導致集群狀態變為黃色。這意味着所有主分片都就緒了,但是並非所有副本分片都就緒了。如果主分片缺失,集群就會顯示紅色,以提示至少有1個索引是不完整的。如果所有的副本分片都被分配了,集群就是綠色的,以提示所有一切都在正常工作。

啟動第二個節點

從另一個不同的終端,運行/bin/elasticsearch。這會在同一台機器上啟動另一個ES實例。通常需要在不同的機器上啟動新的節點,來充分利用額外的處理能力。

0.修改config/elasticsearch.yml配置文件,將各節點的cluster.name(集群名稱)設置成相同名稱;設置node.name(節點名稱)

1.啟動之后,看第二個節點的日志,如下

[2019-06-19 22:45:36,704][INFO ][cluster.service ] [Feng_1] detected_master {Feng}{RbRBUbuSR7SfEyQvg9OJSQ}{127.0.0.1}{127.0.0.1:9300}, added {{Feng}{RbRBUbuSR7SfEyQvg9OJSQ}{127.0.0.1}{127.0.0.1:9300},}, reason: zen-disco-receive(from master [{Feng}{RbRBUbuSR7SfEyQvg9OJSQ}{127.0.0.1}{127.0.0.1:9300}])

Feng是第一個節點的名字,Feng1是第二個節點的名字。第二個節點通過多播偵測到第1個節點,並加入集群。第1個節點也是集群的主節點(master),這意味着它將負責保存集群中有哪些節點、分片位於哪里等這樣的信息。這種信息稱為集群狀態(cluster state),並被復制到其他節點。如果主節點宕機,集群將會選舉出另一個節點替代原有的主節點。

2.第一個節點日志信息如下

[2019-06-19 22:45:36,692][INFO ][cluster.service ] [Feng] added {{Feng_1}{ZyK2Y6fVQNWXFVWhiYz3Lg}{127.0.0.1}{127.0.0.1:9301},}, reason: zen-disco-join(join from node[{Feng_1}{ZyK2Y6fVQNWXFVWhiYz3Lg}{127.0.0.1}{127.0.0.1:9301}])
[2019-06-19 22:45:38,264][INFO ][cluster.routing.allocation] [Feng] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[music][4]] ...]).

可發現集群健康狀態由yellow變為了green,這是因為副本分片有地方放了。

3.再次查看分片情況;

FengZhendeMacBook-Pro:nacos FengZhen$ curl 'localhost:9200/_cat/shards?v'
index shard prirep state docs store ip node 
music 2 p STARTED 0 159b 127.0.0.1 Feng 
music 2 r STARTED 0 159b 127.0.0.1 Feng_1 
music 3 p STARTED 1 3.2kb 127.0.0.1 Feng 
music 3 r STARTED 1 3.2kb 127.0.0.1 Feng_1 
music 4 p STARTED 0 159b 127.0.0.1 Feng 
music 4 r STARTED 0 159b 127.0.0.1 Feng_1 
music 1 p STARTED 0 159b 127.0.0.1 Feng 
music 1 r STARTED 0 159b 127.0.0.1 Feng_1 
music 0 p STARTED 0 159b 127.0.0.1 Feng 
music 0 r STARTED 0 159b 127.0.0.1 Feng_1

此時發現所有分片都已被分配。

隨着更多的節點加入,機器將使用端口9201、9202等。對於節點之間的通信,ES使用端口9300、9301等。需要在防火牆里設置允許訪問這些端口。

擴展選項

1.修改副本分片的數量:副本分片可以動態的更新,但是這種擴展方式只能增加集群對於並發搜索的處理量,因為搜索請求以round-robin的輪詢方式,被發送到同一分片的多個副本。索引性能仍然保持不變,因為新的數據必須被所有分片處理。同樣,單個的搜索將在單獨的一組分片上運行,所以增加副本分片不會有什么幫助。
2.創建擁有更多分片的索引:這意味着重新索引數據,因為主分片的數量無法動態修改。
3.增加更多的索引:某些數據很容易被設計為使用多索引的模式。例如:如果索引日志,可以將每天的日志放入一個單獨的索引。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM