Elasticsearch集羣安裝

                          Elasticsearch集羣安裝


目錄

                          Elasticsearch集羣安裝

一.配置搭建三個節點的集羣

1.前提條件注意

2.配置集羣的配置文件

1.每個節點指定協調器的list(elasticsearch.yml)

2.修改對應配置

3.防止集羣發生"腦裂",爲集羣配置最大的有效master個數

3.啓動集羣的所有節點

1.類bully(RBULLY)算法將master選舉出來(master參加)

2.先啓動Head插件觀察

3.啓動第一個ES

4.啓動成功,一直循環讀取

5.啓動第二個節點

6.啓動成功

7.HEAD插件查看

8.啓動第三個節點

9.啓動成功

10.head查看

11.在進羣中連接負載均衡器寫入一些數據(index01,index02)


一.配置搭建三個節點的集羣

1.前提條件注意

ik分詞器(造成其他節點同步數據時,沒有ik分詞器的錯誤)保持一致;

如果你將ik分詞器刪除,保證之前使用ik分詞器的所有相關數據(索引)也要刪除.

  • [root@10-42-60-249 elasticsearch-5.5.2]# rm -rf data
  • [root@10-42-60-249 elasticsearch-5.5.2]# rm -rf *
  • [root@10-42-60-249 elasticsearch-5.5.2]# rm -rf logs/

2.配置集羣的配置文件

  • 保證集羣名稱一致elasticsearch
  • 保證節點名稱不一致es01 es02 es03

1.每個節點指定協調器的list(elasticsearch.yml)

每一個的名稱都要不同

2.修改對應配置

3.防止集羣發生"腦裂",爲集羣配置最大的有效master個數

公式: 所有master個數/2+1(過半數) 3個配置倆個即可

修改一下配置

由於網絡波動,形成多個大腦指揮,

  • 在master集羣中,本來應該互相有效通信的集羣,出現波動後,形成2個多個master集羣,同時操作dataNode節點們,可能造成執行的命令衝突導致數據錯亂---集羣的腦裂;
  • ES防止腦裂的出現,就是利用最小master數量過半定義的.
  • 結論:在ES防止腦裂的配置過半master後,集羣無論如何出現腦裂的情況,至多隻有一個有效的master集羣滿足最小master數量;

3.啓動集羣的所有節點

1.類bully(RBULLY)算法將master選舉出來(master參加)

  • 1 啓動的master節點到協調器獲取集羣所有master信息(id)
  • 2 如果activeMaster(正在提供主節點的信息list),有值,說明集羣已經選舉完畢master.如果有就選舉完畢
  • 3 如果activeMaster中沒有數據是空(獲取斷開剔除),沒有值(節點信息),將會把從協調器獲取的所有master信息放到後補list candidateMaster.
  • 4 判斷candidateMaster裏面存儲的master節點數量是否滿足最小master有效數量
  • 5 如果不滿足,從新回到第一步
  • 6 如果滿足,從裏面將id值最小的master選舉成爲activeMaster的值

最終集羣中activeMaster裏的節點,就是被選舉出來的主節點.

2.先啓動Head插件觀察

3.啓動第一個ES

4.啓動成功,一直循環讀取

  • 1 啓動的master節點到協調器獲取集羣所有master信息(id) 滿足,因爲初始設置的爲主節點(因爲只啓動一個,只有一個主節點)
  • 2 如果activeMaster(正在提供主節點的信息list),有值,說明集羣已經選舉完畢master.如果有就選舉完畢 不滿足(剛啓動,沒有選舉完畢,)
  • 3 如果activeMaster中沒有數據是空(獲取斷開剔除),沒有值(節點信息),將會把從協調器獲取的所有master信息放到後補list candidateMaster.  滿足  (有且只要一個)
  • 4 判斷candidateMaster裏面存儲的master節點數量是否滿足最小master有效數量 不滿足(最小maste設置爲2,目前只爲1)
  • 5 如果不滿足,從新回到第一步  不滿足(重新獲取)  
  • 6 如果滿足,從裏面將id值最小的master選舉成爲activeMaster的值  不執行

所以目前,只做一到四的循環讀取

5.啓動第二個節點

6.啓動成功

  • 1 啓動的master節點到協調器獲取集羣所有master信息(id) 滿足,因爲初始設置的爲主節點(啓動二個,有二個主節點)
  • 2 如果activeMaster(正在提供主節點的信息list),有值,說明集羣已經選舉完畢master.如果有就選舉完畢 不滿足(剛啓動,沒有選舉完畢,)
  • 3 如果activeMaster中沒有數據是空(獲取斷開剔除),沒有值(節點信息),將會把從協調器獲取的所有master信息放到後補list (防止一次放進多個)candidateMaster.  滿足  (有二個)
  • 4 判斷candidateMaster裏面存儲的master節點數量是否滿足最小master有效數量 滿足(最小maste設置爲2)
  • 5 如果不滿足,從新回到第一步  滿足  
  • 6 如果滿足,從裏面將id值最小的master選舉成爲activeMaster的值  滿足

所以目前,做一到六的讀取  

7.HEAD插件查看

選出01做主節點

8.啓動第三個節點

9.啓動成功

因爲選舉已經結束,所以不會改變結果

10.head查看

11.在進羣中連接負載均衡器寫入一些數據(index01,index02)

#curl -XPUT http://IP:9200/index06

實現高可用,當01宕機.02,03 選舉id最小的頂替,

  • 配置文件中的分片和副本默認值
  • index.number_of_shards: 5 
  • 設置索引的副本數,默認爲1: 
  • index.number_of_replicas: 1 

index06在創建時,會經過master(activeMaster)根據配置文件計算

分片數量,副本數量,記錄metadata 將索引數據切分到datanode

PS:分片無法控制,是選舉的master負責分配


ES集羣搭建完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章