国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移

這篇具有很好參考價值的文章主要介紹了【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、ES集群介紹

單機的ES做數(shù)據(jù)存儲與搜索,必然面臨兩個問題:

  • 海量數(shù)據(jù)存儲問題
  • 單點故障問題

因此,考慮使用ES集群:

  • 海量數(shù)據(jù)存儲問題:將索引庫從邏輯上拆分為N個分片(shard),存儲到多個節(jié)點。如此,ES的存儲能力就是所有節(jié)點存儲能力的總和
    【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

  • 單點故障問題:將分片數(shù)據(jù)在不同的節(jié)點備份(replica),即主分片和副本分片不能在同一個節(jié)點
    【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

2、搭建ES集群

利用3個docker容器模擬3個es的節(jié)點:

  • 首先編寫 docker-compoes.yml文件,內容:
version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es01
    environment:
      - node.name=es01  
      - cluster.name=es-docker-cluster  # 這里集群名稱一樣,集群名稱相同的節(jié)點會形成集群
      - discovery.seed_hosts=es02,es03  # 集群中另外兩個節(jié)點的IP,但這里我用容器模擬了,用容器名就能互連
      - cluster.initial_master_nodes=es01,es02,es03  # 集群有主從之分,這三個節(jié)點參與選舉,產生主節(jié)點
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic  # 網(wǎng)絡
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
	ports:
      - 9201:9200  # 宿主機9200已用,這里+1
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic
	ports:
      - 9202:9200

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge
  • es運行需要修改一些linux系統(tǒng)權限,修改/etc/sysctl.conf文件:
vi /etc/sysctl.conf
  • 添加內容:
vm.max_map_count=262144
  • 生效配置:
sysctl -p
  • 通過docker-compose啟動集群:
docker-compose up -d

# yum install docker-compose

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

3、集群狀態(tài)監(jiān)控

kibana可以監(jiān)控es集群,但新版需要依賴es的x-pack功能,配置復雜,這里用cerebro來監(jiān)控es集群狀態(tài)

# 官網(wǎng)
https://github.com/lmenezes/cerebro

# 網(wǎng)盤
鏈接:https://pan.baidu.com/s/1dj4HgTZsVfFSe6-hR2ydnA?pwd=9527 
提取碼:9527
  • 下載完成后解壓
    【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

  • 進入bin,雙擊cerebro.bat
    【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

  • 訪問localhost:9000,輸入任一節(jié)點的地址(地址后面有個/)
    【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
    【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

創(chuàng)建索引庫

集群中,每個索引庫的分片數(shù)量、副本數(shù)量都是在創(chuàng)建索引庫時指定的,并且分片數(shù)量一旦設置以后無法修改。

語法如下:

PUT /test
{
  "settings": {
    "number_of_shards": 3, // 分片數(shù)量
    "number_of_replicas": 1 // 副本數(shù)量
  },
  "mappings": {
    "properties": {
      // mapping映射定義 ...
    }
  }
}

在cerebro中創(chuàng)建索引庫:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

填索引庫名和分片數(shù)、副本數(shù):

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

查看overview,實線為主分片,虛線為副本分片:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

4、集群職責及腦裂

集群節(jié)點職責:

ES集群中,不同的節(jié)點有不同的職責:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

以上角色的默認值都為ture,但不同的角色職責不同,對硬件的要求也不同,有的對CPU要求高,有的對硬盤要求高,因此,應該每個節(jié)點都有自己獨立的角色。舉個例子如下圖,每個節(jié)點專門干一件事:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

腦裂:

默認情況下,每個節(jié)點都是master eligible節(jié)點,因此一旦master節(jié)點宕機,其它候選節(jié)點會選舉一個成為主節(jié)點。但當主節(jié)點只是與其他節(jié)點有暫時的網(wǎng)絡通信故障時:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

備選節(jié)點聯(lián)系不上主節(jié)點,以為主節(jié)點宕機,選舉出一個新的master,由此產生兩個主節(jié)點,當網(wǎng)絡恢復,就會出現(xiàn)數(shù)據(jù)不一致的情況。

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
為了避免腦裂,需要要求選票超過 ( eligible節(jié)點數(shù)量 + 1 )/ 2 才能當選為主,因此eligible節(jié)點數(shù)量最好是奇數(shù)。對應配置項是discovery.zen.minimum_master_nodes 。在es7.0以后,已經成為默認配置,因此一般不會發(fā)生腦裂問題

5、分布式新增和查詢流程

沒啟動kibana,直接調接口插入三條doc:(在9201,即es01節(jié)點插入數(shù)據(jù))

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
查詢文檔,不管在9201、9202、9203,三個節(jié)點都能查到數(shù)據(jù):

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
添加explain參數(shù)來看分片情況:三條數(shù)據(jù)在不同的分片

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

這是協(xié)調節(jié)點工作的結果,當新增文檔時,它會將數(shù)據(jù)保存到不同分片,保證數(shù)據(jù)均衡。而coordinating node確實數(shù)據(jù)存到哪個分片是根據(jù):

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

  • _routing默認是文檔的id
  • number_of_shards即分片數(shù)量,算法與分片數(shù)量有關,因此索引庫一旦創(chuàng)建,分片數(shù)量不能修改

存儲和查詢都依賴這個算法,因此分片數(shù)量不能再變,否則按某個分分片數(shù)量存進去后,分片數(shù)量改變,等查的時候按這個算法計算找文檔就找不到了。

新增文檔流程:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
當然,根據(jù)id查詢,還是這么個流程。但如果不知道文檔id,該怎么查,比如match_all

ES集群的分布式查詢

  • scatter phase:分散階段,coordinating node會把請求分發(fā)到每一個分片
  • gather phase:聚集階段,coordinating node匯總data node的搜索結果,并處理為最終結果集返回給用戶

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
coordinating node可能為其中任一個節(jié)點,就像上面match_all查詢,不管訪問哪個節(jié)點,最終都可以拿到三條數(shù)據(jù)。

6、ES故障轉移

集群的master節(jié)點會監(jiān)控集群中的節(jié)點狀態(tài),如果發(fā)現(xiàn)有節(jié)點宕機,會立即將宕機節(jié)點的分片數(shù)據(jù)遷移到其它節(jié)點,確保數(shù)據(jù)安全,即故障轉移。比如有條數(shù)據(jù),存于三個節(jié)點的主分片分別為P-0、P-1、P-2,副本為R-0、R-1、R-2,此時node1節(jié)點宕機:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

當然R0+P1+P2還是可以湊出這條數(shù)據(jù),但此時數(shù)據(jù)已經不安全,需要遷移:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

實際模擬一下,此時三個節(jié)點都正常,數(shù)據(jù)存在三分節(jié)點上:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

//停掉es1容器,模擬節(jié)點宕機
docker stop es01

查看集群情況:變黃了,不健康了,數(shù)據(jù)分片0有兩個(主副都在),但1、2分片都只有一個了
【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

再等等,開始了數(shù)據(jù)遷移了:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎
重新啟動es01,查看效果:

docker start es01

分片回去了,數(shù)據(jù)還是均衡的,但es01已不再是主節(jié)點。這倒有點想Redis的哨兵模式。

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎

總結:

【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移,ElasticSearch,elasticsearch,大數(shù)據(jù),搜索引擎文章來源地址http://www.zghlxwxcb.cn/news/detail-560874.html

到了這里,關于【ElasticSearch】ES集群搭建、監(jiān)控、故障轉移的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 袁庭新ES系列14節(jié) | 搭建Elasticsearch集群

    袁庭新ES系列14節(jié) | 搭建Elasticsearch集群

    單節(jié)點的Elasticsearch需要在處理大量數(shù)據(jù)的時候需要消耗大量內存和CPU資源,數(shù)據(jù)量大到一定程度就會產生處理瓶頸,甚至會出現(xiàn)宕機。 為了解決單節(jié)點ES的處理能力的瓶頸及單節(jié)點故障問題,我們考慮使用Elasticsearch集群。接下來袁老師帶領大家學習如何搭建Elasticsearch的集群

    2024年04月17日
    瀏覽(26)
  • Elasticsearch--01.ES8.1.0集群搭建

    Elasticsearch--01.ES8.1.0集群搭建

    一、搭建ES集群 1.集群環(huán)境安裝 本集群使用Centos7.5操作系統(tǒng),2G 2C 60G(如果主機好點的節(jié)點配置可以搞高點) 分別修改三臺集群服務器配置: ?1.1.修改系統(tǒng)配置文件/etc/security/limits.conf 1.2.修改/etc/sysctl.conf 1.3.# sysctl -p? 重新加載 集群服務器如下: 機器地址 節(jié)點名稱 節(jié)點角

    2024年02月12日
    瀏覽(20)
  • 【ElasticSearch系列-06】Es集群架構的搭建以及集群的核心概念

    【ElasticSearch系列-06】Es集群架構的搭建以及集群的核心概念

    ElasticSearch系列整體欄目 內容 鏈接地址 【一】ElasticSearch下載和安裝 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【三】ElasticSearch的高級查詢Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月04日
    瀏覽(27)
  • 磐基2.0搭建es集群 k8s安裝elasticsearch集群

    參考: k8s安裝elasticsearch集群_k8s部署elasticsearch集群_MasonYyp的博客-CSDN博客 1 環(huán)境簡述搭建es集群需要使用的技術如下:k8s集群、StatefulSet控制器、Service(NodePort)服務、PV、PVC、volumeClaimTemplates(存儲卷申請模板)。StatefulSet控制器創(chuàng)建的Pod適合用于分布式存儲系統(tǒng),它最大的特

    2024年02月09日
    瀏覽(21)
  • 【Elasticsearch】從零開始搭建ES8集群并且集成到Springboot,更好的服務電商類等需要全文索引的項目(一)

    【Elasticsearch】從零開始搭建ES8集群并且集成到Springboot,更好的服務電商類等需要全文索引的項目(一)

    最近公司的電商項目越來越龐大,功能需求點也越來越多,各種C端對查詢和檢索的要求也越來越高,是時候在項目中引入全文檢索了。 ElasticSearch 是一個基于 Lucene 的搜索服務器,它提供了一個分布式多用戶能力的全文搜索引擎,并且是基于Java 開發(fā)的,我記得很久之前ES還不

    2024年02月15日
    瀏覽(23)
  • [] ElasticSearch集群故障案例分析: 警惕通配符查詢

    [] ElasticSearch集群故障案例分析: 警惕通配符查詢

    [攜程旅行網(wǎng): 吳曉剛] ?許多有RDBMS/SQL背景的開發(fā)者,在初次踏入ElasticSearch世界的時候,很容易就想到使用(Wildcard Query)來實現(xiàn)模糊查詢(比如用戶輸入補全),因為這是和SQL里like操作最相似的查詢方式,用起來感覺非常舒適。然而近期我們線上一個搜索集群的故障揭示了,濫

    2024年02月07日
    瀏覽(15)
  • Windows故障轉移集群

    Windows故障轉移集群

    Windows2012作為根域 兩臺Windows2008加入域 創(chuàng)建三臺Windows 分別是Windows2012和兩臺Windows2008? 并選擇其環(huán)境 ? 創(chuàng)建三個十g的卷,連接至Windows2012?? 清理三臺主機的后臺數(shù)據(jù) 然后修改三臺主機的IP? 本機IP要相對應 Windows2008-1主機IP 第二塊網(wǎng)卡不需要填寫網(wǎng)關及dns服務器IP地址 Windo

    2024年02月12日
    瀏覽(16)
  • ElasticSearch監(jiān)控與告警:實時監(jiān)控集群健康狀態(tài)

    ElasticSearch是一個開源的搜索和分析引擎,它可以為應用程序提供實時的、可擴展的搜索功能。ElasticSearch是一個分布式系統(tǒng),它可以在多個節(jié)點上運行,以實現(xiàn)高可用性和高性能。在生產環(huán)境中,監(jiān)控和告警是關鍵的,以確保集群的健康狀態(tài)和性能。 在本文中,我們將討論

    2024年02月20日
    瀏覽(21)
  • MGR 主備集群實現(xiàn)異步連接故障轉移

    MGR 主備集群實現(xiàn)異步連接故障轉移

    MySQL 8.0.22 開始 ,支持異步連接故障切換機制,在現(xiàn)有主從復制連接失敗后,自動建立到新主的異步復制連接。 MySQL 8.0.23 開始 ,異步連接故障切換機制還支持組復制拓撲,通過自動監(jiān)視組成員身份的更改并區(qū)分主節(jié)點和從節(jié)點,在組復制主節(jié)點故障選出新主節(jié)點后,自動建

    2024年02月16日
    瀏覽(19)
  • 【ES專題】ElasticSearch集群架構剖析

    【ES專題】ElasticSearch集群架構剖析

    個人感覺集群架構其實都有點大同小異,看了這么多集群架構之后,感覺無非要考慮的地方就幾點: 使用何種通信協(xié)議去同步數(shù)據(jù),互相通信 采用何種策略同步數(shù)據(jù)(異步還是同步) 如何保證一致性,保證到什么程度(【最終一致性】 or【實時一致性 / 強一致性】) 使用何

    2024年02月04日
    瀏覽(13)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包