黑馬es集群

1、為什么要做es集群

單機的elasticsearch做數據存儲,必然面臨兩個問題:海量數據存儲問題、單點故障問題

????????海量數據存儲問題:將索引庫從邏輯上拆分為N個分片(shard),存儲到多個節點

????????單點故障問題:將分片數據在不同節點備份(replica)

2、搭建es集群

? ? ? ? 1、用3個docker容器模擬3個es節點

????????

version: '2.2'
services:es01:image: elasticsearch:7.12.1container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: elasticsearch:7.12.1container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- data02:/usr/share/elasticsearch/dataports:- 9201:9200networks:- elastices03:image: elasticsearch:7.12.1container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticports:- 9202:9200
volumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

????????這是一個使用Docker Compose編排的Elasticsearch集群配置文件。在這個配置中,定義了三個Elasticsearch節點(`es01`、`es02`和`es03`)以及它們共享的網絡、卷和相關設置。

????????- `version: '2.2'`指定了使用的Docker Compose版本。
????????- `services`段定義了各個服務,對應了三個Elasticsearch節點`es01`、`es02`和`es03`。
????????- 每個Elasticsearch節點都基于`elasticsearch:7.12.1`鏡像啟動,指定了節點名稱、集群名稱、發現種子主機、初始主節點和Java虛擬機參數等環境變量配置。
????????- `volumes`段定義了三個數據卷`data01`、`data02`和`data03`用于持久化地存儲Elasticsearch數據。
????????- `ports`指定了將Elasticsearch節點的9200端口(或9200、9201、9202)映射到主機的9200端口(或9201、9202、9203),允許通過主機訪問Elasticsearch服務。
????????- `networks`段指定了每個Elasticsearch節點連接到`elastic`網絡,通過該網絡實現節點之間的通信和互連。
????????- `volumes`部分定義了三個本地驅動的數據卷用于持久化存儲Elasticsearch數據。
????????- `networks`部分定義了一個名為`elastic`的橋接網絡,用于連接Elasticsearch節點。

這個配置文件實現了一個基于Docker容器的Elasticsearch集群,通過定義各節點之間的通信方式、數據存儲方式和網絡連接,使得這些獨立的Elasticsearch節點能夠組成一個工作集群,共同提供Elasticsearch服務。
?

2、設置虛擬機內存

es運行需要修改一些linux系統權限,修改`/etc/sysctl.conf`文件

????????vi /etc/sysctl.conf

添加下面的內容:

????????vm.max_map_count=262144

然后執行命令,讓配置生效:

????????sysctl -p

通過docker-compose啟動集群:

????????docker-compose up -d

? ? ? ? 3、通過cerebro管理集群

? ? ? ? 具體文件見黑馬視頻,需要注意的是java版本的匹配

????????圖中版本我使用的是jdk1.8,實測jdk21會閃退

? ? ? ? 在地址欄中輸入你任意一個es容器地址和端口即可,注意不要忘了http://

????????

es集群的腦裂

????????默認情況下,每個節點都是master eligible節點,因此一旦master節點宕機,其它候選節點會選舉一個成為主節點。當主節點與其他節點網絡故障時,可能發生腦裂問題。
????????為了避免腦裂,需要要求選票超過(eligible節點數量+1)/2才能當選為主,因此eligible節點數量最好是奇數。對應配置項是discovery.zen.minimum master nodes,在es7.0以后,已經成為默認配置,因此一般不會發生腦裂問題

master eligible節點的作用是什么?
????????參與集群選主
????????主節點可以管理集群狀態、管理分片信息、處理創建和刪除索引庫的請求
data節點的作用是什么?

????????數據的CRUD

coordinator節點的作用是什么?
????????路由請求到其它節點
????????合并查詢到的結果,返回給用戶

3、分布式細節

分布式存儲

分布式查詢

其中的coordinating node也可以是其中節點的任意一個

總結:

????????分布式新增如何確定分片?

????????????????coordinating node根據id做hash運算,得到結果對shard數量取余,余數就是對應的分片
????????

????????分布式查詢:

????????????????分散階段:coordinating node將查詢請求分發給不同分片

????????????????收集階段:將查詢結果匯總到coordinatingnode,整理并返回給用戶

4、故障轉移

????????集群的master節點會監控集群中的節點狀態,如果發現有節點宕機,會立即將宕機節點的分片數據遷移到其它節點,確保數據安全,這個叫做故障轉移。

????????

? ? ? ? 主節點掛了就選個新的主節點,然后數據遷移,其他節點掛了就直接數據遷移

故障轉移:
????????master容機后,EligibleMaster選舉為新的主節點:

????????master節點監控分片、節點狀態,將故障節點上的分片轉移到正常節點,確保數據安全。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19562.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19562.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19562.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 數據庫編程(Mysql)

目錄 知識點 游標 提交事務 檢索數據 回滾 關閉 增刪改查 查詢 新增 修改 刪除 回滾的用法 知識點 游標 在Python中,數據庫游標(cursor)是用于執行SQL語句并檢索數據的對象。游標允許你在數據庫中移動并操作數據。在使用Python進…

請說明Vue的filter的理解與用法

Vue.js 的 filter 是一種特殊的功能,允許你在mustache插值 ({{ }}) 或 v-bind 表達式中預處理文本。然而,需要注意的是,從 Vue 2.x 開始,filter 已被標記為廢棄,并且在 Vue 3.x 中已完全移除。盡管如此,了解…

力扣Hot100-有效的括號(棧stack)

給定一個只包括 (,),{,},[,] 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右括號都有一個對應的相同類型的左括…

【C++】哈希(2萬字)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 目錄 前言 unordered系列關聯式容器 unordered_map unordered_map的文檔介紹 unordered_map的接口說明 unordered_set 底層結構 哈希概念 哈希沖突 哈希函數 哈希…

Whisper-AT:抗噪語音識別模型(Whisper)實現通用音頻事件標記(Audio Tagger)

1.概述: Whisper-AT 是建立在 Whisper 自動語音識別(ASR)模型基礎上的一個模型。Whisper 模型使用了一個包含 68 萬小時標注語音的大規模語料庫進行訓練,這些語料是在各種不同條件下錄制的。Whisper 模型以其在現實背景噪音(如音樂…

探究 Meme 的金融與社交屬性

原文標題:《A Social and Financial Study of Memecoins》撰文:Andrew Hong編譯:Chris,Techub News 每一個市場周期都伴隨著 Meme 代幣的出現。一群人圍繞著某個 Meme 集結起來,暫時抬高了某個資產的價格(從…

Github Copilot登錄賬號,完美支持chat

Github Copilot 代碼補全等功能,提高寫代碼的效率 https://web.52shizhan.cn/activity/copilot 登錄授權后,已經可以使用,完美。如圖

flutter 自動生成靜態資源的引用

flutter_gen庫的使用 第一步、項目yarml中dev_dependencies 新增一下flutter_gen_runner 和build_runner dev_dependencies:build_runner: nullflutter_gen_runner: null # flutter packages pub run build_runner build 第二步、新增配置信息 和(dev_dependencies 同級的) …

大話設計模式學習筆記

目錄 工廠模式策略模式備忘錄模式(快照模式)代理模式單例模式迭代器模式訪問者模式觀察者模式解釋器模式命令模式模板方法模式橋接模式適配器模式外觀模式享元模式原型模式責任鏈模式中介者模式裝飾模式狀態模式 工廠模式 策略模式 核心:封裝…

03.k8s常用的資源

3.k8s常用的資源 3.1 創建pod資源 k8s yaml的主要組成 apiVersion: v1 api版本 kind: pod 資源類型 metadata: 屬性 spec: 詳細上傳nginx鏡像文件,并且上傳私有倉庫里面 k8s_pod.yaml apiVersion: v1 kind: Pod metadata:name: nginxlabels:app: we…

prometheus 標簽選擇器 正則表達式 = 、=~

Prometheus expression是一種用于查詢和操作Prometheus時間序列數據的查詢語言。它具有一套豐富的函數和運算符,可以用于提取、聚合和轉換時間序列數據。 正則表達式在Prometheus expresion中也被廣泛使用,可以用于匹配和過濾時間序列。 Prometheus ex…

Tuxera Ntfs For Mac 2023的具體使用方法

大家都知道由于操作系統的原因,在蘋果電腦上不能夠讀寫NTFS磁盤,但是,今天小編帶來的這款tuxera ntfs 2024 mac 破解版,完美的解決了這個問題。這是一款在macOS平臺上使用的磁盤讀寫軟件,能夠實現蘋果Mac OS X系統讀寫…

CSS實驗性功能及CSS4特性

CSS4目前仍然是一個寬泛的概念,因為CSS的發展通常是通過一系列逐步完善的模塊來進行的,而不是一次性推出一個全新的“第四代”。許多所謂的“CSS4”特性實際上是正在開發或已經草案階段的CSS模塊,它們可能在未來的CSS規范中被正式采納。 選擇器4: :is() 和 :where() 偽類允…

Docker的數據管理(數據卷+數據卷容器)

文章目錄 一、Docker的數據管理1、概述2、主要的技術(三種數據掛載方式)2.1、數據卷(Volumes)2.2、綁定掛載(Bind mounts)2.3、tmpfs掛載(Tmpfs mounts)2.4、之間的關系(…

偏微分方程算法之二階雙曲型方程交替方向隱格式(變形一)

目錄 一、研究目標 二、變形 三、算例實現 四、計算結果 本專欄介紹了二階雙曲型偏微分方程的交替方向隱格式的介紹和推導(鏈接如下),本節將進一步研究二維雙曲型方程初邊值問題其它的交替方向隱格式。

示例丨醫學、醫藥類查新點填寫參考案例

根據《科技查新技術規范》GB/T 32003-2015,科學技術要點是必須要包含查新點內容的,而查新點就是科學技術要點中能夠體現查新項目新穎性和技術進步的技術特征點。 在日常查新工作的接待中,我們發現醫學、醫藥類查新合同上查新點的書寫&#x…

計算機tcp/ip網絡通信過程

目錄 (1)同一網段兩臺計算機通信過程 (2)不同網段的兩臺計算機通信過程 (3)目的主機收到數據包后的解包過程 (1)同一網段兩臺計算機通信過程 如果兩臺計算機在同一個局域網中的同…

算法(九)希爾排序

文章目錄 希爾排序簡介代碼實現 希爾排序簡介 希爾排序(shell sort)選定一個小于N(數列長度)的整數gap作為第一增量,然后將所有距離為gap的元素分成一組,然后對每一組的元素進行插入排序。然后再取一個比前…

(1+X)Java程序設計高級(一)

Throwable:異常的基類,所有異常都繼承自 java.lang.Throwable 類,Throwable 類有兩個直接子類:Error 類和 Exception 類。Error:是 Java 應用程序本身無法恢復的嚴重錯誤,應用程序不需要捕獲、處理這些嚴重…

7.1 Go 錯誤的概念

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…