1. 程式人生 > 其它 >ES叢集的擴縮容

ES叢集的擴縮容

ES叢集節點的擴容縮容案例

1.在叢集中新增和刪除節點

  當您啟動Elasticsearch例項時,您正在啟動一個節點。Elasticsearch叢集是一組具有相同cluster.name屬性的節點。當節點加入或離開叢集時,叢集會自動重新組織自己,以便在可用節點之間均勻地分佈資料。

  如果您正在執行單個Elasticsearch例項,則您擁有一個節點叢集。所有主分片駐留在單個節點上。不能分配複製分片,因此叢集狀態保持為黃色。叢集功能完整,但在發生故障時存在資料丟失的風險。

  通過增加叢集內的節點,可以提高叢集的容量和可靠性。預設情況下,節點也是資料節點,也可以被選為控制叢集的主節點。您還可以為特定目配置新節點,例如處理接收請求。

  當您向叢集新增更多節點時,它會自動分配副本分片。當所有主分片和副本分片都處於活動狀態時,叢集狀態變為綠色。

  您可以在本地機器上執行多個節點,以試驗由多個節點組成的Elasticsearch叢集的行為。
  要將一個節點新增到本地機器上執行的叢集中:

  1. 設定一個新的 Elasticsearch 例項
  2. 使用 elasticsearch.yml 中的 cluster.name 設定指定叢集的名稱
  3. 啟動 Elasticsearch,節點自動發現並加入指定的叢集

  要將節點新增到執行在多臺機器的叢集上,您必須設定discovery.seed_hosts,以至於新的節點可以發現叢集的其他資訊

 

2 擴容資料節點

  

  2.1 當ES叢集儲存或者計算資源不夠了,我們需要對資料節點進行擴容:

       step 1.安裝elasticsearch節點
       step 2.修改配置檔案

  

#與需要擴容的叢集保持一致
cluster.name: es-cluster node.name: es2 node.attr.rack: r1 node.master: false node.data: true path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 10.246.104.17 discovery.seed_hosts: [
"10.246.104.116", "10.246.104.117", "10.246.104.118", "10.246.104.136", "10.246.104.137", "10.246.105.75", "10.246.105.76", "10.246.104.17", "10.246.104.19"] #填寫的es節點 cluster.initial_master_nodes: #填寫原來的叢集的master - elasticsearch1 - elasticsearch2 - elasticsearch3 bootstrap.system_call_filter: false node.attr.box_type: hot indices.fielddata.cache.size: 20%

注意:在修改配置檔案期間,不能夠啟動elasticsearch,否則可能會導致與原有的叢集uuid不一致導致無法加入到叢集這時候需要刪除elasticsearch的data資料

 

2.2 啟動節點

  這時候節點會自動加入叢集並且自動進行rebalance

 

2.3 檢視節點是否已經正常加入了

curl -s -XGET "http://es_host:9200/_cat/nodes?v"
ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.246.104.118           36          99   2    0.11    0.15     0.21 dim       -      elasticsearch3
10.246.104.117           22          99   2    0.45    0.46     0.49 dim       *      elasticsearch2
10.246.104.116           21          99   1    0.27    0.31     0.31 dim       -      elasticsearch1
10.246.105.76            37          99   1    4.50    7.33     8.08 di        -      es_stale2
10.246.104.19            52          98   0    0.06    0.18     0.22 di        -      es1
10.246.104.137           18          99   0    0.43    0.29     0.29 di        -      es_hot2
10.246.104.136           57          99   2    0.26    0.47     0.46 di        -      es_hot1
10.246.104.17            66          98   3    0.18    0.13     0.10 di        -      es2
10.246.105.75            58          99   1    2.49    2.30     1.93 di        -      es_stale1

節點已經成功加入叢集

 

3 縮容資料節點

  3.1 獲取需要縮容的節點資訊

  

[root@elasticsearch-01 ~]# curl -s -XGET "http://es-host:9200/_cat/nodes?v"
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role   master name
11.96.55.7           50           9   0    0.05    0.03     0.06 cdfhilrstw  -      elasticsearch-04
11.96.55.7           18           9   0    0.05    0.03     0.06 cdfhilmrstw *      elasticsearch-01
11.96.55.7           24           9   0    0.05    0.03     0.06 cdfhilmrstw -      elasticsearch-02
11.96.55.7           53           9   0    0.05    0.03     0.06 cdfhilmrstw -      elasticsearch-03
[root@elasticsearch-01 ~]# 

 

  3.2 將節點從叢集路由策略中排除

curl -X PUT "es-host:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "transient" : {
    "cluster.routing.allocation.exclude._name" : "elasticsearch-04"
  }
}
'
{"acknowledged":true,"persistent":{},"transient":{"cluster":{"routing":{"allocation":{"exclude":{"_name":"elasticsearch-04"}}}}}}

 

  3.3 等待該節點上的資料全部遷移完成後

[root@elasticsearch-01 ~]# curl -s -XGET "http://elasticsearch-01:9201/_cat/allocation?v"
shards disk.indices disk.used disk.avail disk.total disk.percent host       ip         node
     0           0b   517.2mb     43.6tb     43.6tb            0 11.96.55.7 11.96.55.7 elasticsearch-01
     0           0b   517.2mb     43.6tb     43.6tb            0 11.96.55.7 11.96.55.7 elasticsearch-02
     0           0b   517.2mb     43.6tb     43.6tb            0 11.96.55.7 11.96.55.7 elasticsearch-03
[root@elasticsearch-01 ~]#

 

  3.4 節點就可安全下線

  3.5 檢視叢集健康狀態

 

參考: http://dbaselife.com/project-16/doc-895/