Docker Elasticsearch集群部署的操作過程
1 環(huán)境
(1)Centos7
(2)Docker 23.0.1
(3)Elasticsearch 7.16.3
2 服務(wù)器
| 名稱 | ip地址 | 內(nèi)存 |
|---|---|---|
| 節(jié)點(diǎn)一 | 192.16.109.113 | 16G |
| 節(jié)點(diǎn)二 | 192.16.109.114 | 16G |
| 節(jié)點(diǎn)三 | 192.16.109.115 | 16G |
3部署
在三個(gè)服務(wù)器節(jié)點(diǎn)上執(zhí)行如下操作:
準(zhǔn)備映射目錄
切換到/home目錄中,創(chuàng)建elasticsearch目錄,切換到elasticsearch目錄中。
cd /home/ mkdir elasticsearch cd elasticsearch
臨時(shí)啟動(dòng)elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.16.3
復(fù)制容器中配置目錄到磁盤目錄
cd /home/elasticsearch docker cp elasticsearch:/usr/share/elasticsearch/config . docker cp elasticsearch:/usr/share/elasticsearch/data . docker cp elasticsearch:/usr/share/elasticsearch/plugins .
授予elasticsearch目錄及子目錄改文件及子文件所有權(quán)限
chmod -R 777 elasticsearch
移除臨時(shí)啟動(dòng)elasticsearch容器
docker stop elasticsearch docker rm elasticsearch
3.1 節(jié)點(diǎn)一
修改/home/elasticsearch/config/elasticsearch.yml配置文件
# 集群名稱 所有節(jié)點(diǎn)名稱一致 cluster.name: es-clusters # 當(dāng)前該節(jié)點(diǎn)的名稱,每個(gè)節(jié)點(diǎn)不能重復(fù)es-node-1,es-node-2,es-node-3 node.name: es-node-1 # 當(dāng)前該節(jié)點(diǎn)是不是有資格競(jìng)選主節(jié)點(diǎn) node.master: true # 當(dāng)前該節(jié)點(diǎn)是否存儲(chǔ)數(shù)據(jù) node.data: true # 設(shè)置為公開訪問 network.host: 0.0.0.0 # 設(shè)置其它節(jié)點(diǎn)和該節(jié)點(diǎn)交互的本機(jī)器的ip地址,三臺(tái)各自為 network.publish_host: 192.16.109.113 # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點(diǎn)之間溝通端口 transport.tcp.port: 9300 # 支持跨域訪問 http.cors.enabled: true http.cors.allow-origin: "*" # 配置集群的主機(jī)地址 discovery.seed_hosts: ["192.16.109.113","192.16.109.114","192.16.109.115"] # 初始主節(jié)點(diǎn),使用一組初始的符合主條件的節(jié)點(diǎn)引導(dǎo)集群 cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"] # 節(jié)點(diǎn)等待響應(yīng)的時(shí)間,默認(rèn)值是30秒,增加這個(gè)值,從一定程度上會(huì)減少誤判導(dǎo)致腦裂 discovery.zen.ping_timeout: 30s # 配置集群最少主節(jié)點(diǎn)數(shù)目,通常為 (可成為主節(jié)點(diǎn)的主機(jī)數(shù)目 / 2) + 1 discovery.zen.minimum_master_nodes: 2 # 禁用交換內(nèi)存,提升效率 bootstrap.memory_lock: false
正式運(yùn)行elasticsearch
docker run --name=elasticsearch-node-1 -p 9200:9200 -p 9300:9300 \ -e ES_JAVA_OPTS="-Xms4g -Xmx4g" \ -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /home/elasticsearch/data:/usr/share/elasticsearch/data \ -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ --restart=always \ -d elasticsearch:7.16.3
3.2 節(jié)點(diǎn)二
修改/home/elasticsearch/config/elasticsearch.yml配置文件
# 集群名稱 所有節(jié)點(diǎn)名稱一致 cluster.name: es-clusters # 當(dāng)前該節(jié)點(diǎn)的名稱,每個(gè)節(jié)點(diǎn)不能重復(fù)es-node-1,es-node-2,es-node-3 node.name: es-node-2 # 當(dāng)前該節(jié)點(diǎn)是不是有資格競(jìng)選主節(jié)點(diǎn) node.master: true # 當(dāng)前該節(jié)點(diǎn)是否存儲(chǔ)數(shù)據(jù) node.data: true # 設(shè)置為公開訪問 network.host: 0.0.0.0 # 設(shè)置其它節(jié)點(diǎn)和該節(jié)點(diǎn)交互的本機(jī)器的ip地址,三臺(tái)各自為 network.publish_host: 192.16.109.114 # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點(diǎn)之間溝通端口 transport.tcp.port: 9300 # 支持跨域訪問 http.cors.enabled: true http.cors.allow-origin: "*" # 配置集群的主機(jī)地址 discovery.seed_hosts: ["192.16.109.113","192.16.109.114","192.16.109.115"] # 初始主節(jié)點(diǎn),使用一組初始的符合主條件的節(jié)點(diǎn)引導(dǎo)集群 cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"] # 節(jié)點(diǎn)等待響應(yīng)的時(shí)間,默認(rèn)值是30秒,增加這個(gè)值,從一定程度上會(huì)減少誤判導(dǎo)致腦裂 discovery.zen.ping_timeout: 30s # 配置集群最少主節(jié)點(diǎn)數(shù)目,通常為 (可成為主節(jié)點(diǎn)的主機(jī)數(shù)目 / 2) + 1 discovery.zen.minimum_master_nodes: 2 # 禁用交換內(nèi)存,提升效率 bootstrap.memory_lock: false
正式運(yùn)行elasticsearch
docker run --name=elasticsearch-node-2 -p 9200:9200 -p 9300:9300 \ -e ES_JAVA_OPTS="-Xms4g -Xmx4g" \ -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /home/elasticsearch/data:/usr/share/elasticsearch/data \ -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ --restart=always \ -d elasticsearch:7.16.3
3.3 節(jié)點(diǎn)三
修改/home/elasticsearch/config/elasticsearch.yml配置文件
# 集群名稱 所有節(jié)點(diǎn)名稱一致 cluster.name: es-clusters # 當(dāng)前該節(jié)點(diǎn)的名稱,每個(gè)節(jié)點(diǎn)不能重復(fù)es-node-1,es-node-2,es-node-3 node.name: es-node-3 # 當(dāng)前該節(jié)點(diǎn)是不是有資格競(jìng)選主節(jié)點(diǎn) node.master: true # 當(dāng)前該節(jié)點(diǎn)是否存儲(chǔ)數(shù)據(jù) node.data: true # 設(shè)置為公開訪問 network.host: 0.0.0.0 # 設(shè)置其它節(jié)點(diǎn)和該節(jié)點(diǎn)交互的本機(jī)器的ip地址,三臺(tái)各自為 network.publish_host: 192.16.109.115 # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點(diǎn)之間溝通端口 transport.tcp.port: 9300 # 支持跨域訪問 http.cors.enabled: true http.cors.allow-origin: "*" # 配置集群的主機(jī)地址 discovery.seed_hosts: ["192.16.109.113","192.16.109.114","192.16.109.115"] # 初始主節(jié)點(diǎn),使用一組初始的符合主條件的節(jié)點(diǎn)引導(dǎo)集群 cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"] # 節(jié)點(diǎn)等待響應(yīng)的時(shí)間,默認(rèn)值是30秒,增加這個(gè)值,從一定程度上會(huì)減少誤判導(dǎo)致腦裂 discovery.zen.ping_timeout: 30s # 配置集群最少主節(jié)點(diǎn)數(shù)目,通常為 (可成為主節(jié)點(diǎn)的主機(jī)數(shù)目 / 2) + 1 discovery.zen.minimum_master_nodes: 2 # 禁用交換內(nèi)存,提升效率 bootstrap.memory_lock: false
正式運(yùn)行elasticsearch
docker run --name=elasticsearch-node-3 -p 9200:9200 -p 9300:9300 \ -e ES_JAVA_OPTS="-Xms4g -Xmx4g" \ -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /home/elasticsearch/data:/usr/share/elasticsearch/data \ -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ --restart=always \ -d elasticsearch:7.16.3
3.4 查看集群是否成功
在瀏覽器上輸入http://任一節(jié)點(diǎn)ip:9200/_cat/nodes?pretty查看集群信息,出現(xiàn)如下信息就代表集群搭建成功了。
192.16.109.113 20 99 1 0.03 0.04 0.06 cdfhilmrstw * es-node-3 192.16.109.114 12 99 3 0.03 0.05 0.06 cdfhilmrstw - es-node-1 192.16.109.114 56 89 2 0.19 0.12 0.13 cdfhilmrstw - es-node-2
4 注意事項(xiàng)
4.1 運(yùn)行elasticsearch啟動(dòng)參數(shù)
注意:我們啟動(dòng)參數(shù)設(shè)置的-e ES_JAVA_OPTS="-Xms4g -Xmx4g",根據(jù)服務(wù)器內(nèi)存實(shí)際情況調(diào)整。
● Xms 為jvm啟動(dòng)是分配的最大內(nèi)存
● Xmx 為jvm運(yùn)行過程分配的最大內(nèi)存
4.2 修改虛擬內(nèi)存最大映射數(shù)
系統(tǒng)虛擬內(nèi)存默認(rèn)最大映射數(shù)為65530,無法滿足ES系統(tǒng)要求,需要調(diào)整為262144以上。sudo vi /etc/sysctl.conf
#添加參數(shù) vm.max_map_count = 655360
重新加載/etc/sysctl.conf配置
sysctl -p
4.3 各節(jié)點(diǎn)無法組成集群,各自都是master的解決辦法
(1)關(guān)閉所有節(jié)點(diǎn),或者直接刪除容器
(2)在三個(gè)節(jié)點(diǎn)上清空/home/elasticsearch/data節(jié)點(diǎn)數(shù)據(jù)
cd /home/elasticsearch/data rm -rf *
(3)重新啟動(dòng)所有節(jié)點(diǎn)
5 參考博客
1.docker進(jìn)行ElasticSearch集群部署
2.Elasticsearch集群搭建及各節(jié)點(diǎn)無法組成集群,各自都是master的解決辦法
到此這篇關(guān)于Docker Elasticsearch集群部署的文章就介紹到這了,更多相關(guān)Docker Elasticsearch集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Docker容器時(shí)區(qū)及時(shí)間不同步問題的方法
這篇文章主要介紹了解決Docker容器時(shí)區(qū)及時(shí)間不同步問題的方法,有效的解決了Docker容器時(shí)間同步問題,有興趣的可以了解一下。2016-12-12
Docker安裝Redis并介紹可視化客戶端進(jìn)行操作
這篇文章主要介紹了Docker安裝Redis并介紹可視化客戶端進(jìn)行操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式
這篇文章主要介紹了Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Docker之蘋果Mac安裝Docker的兩種方式小結(jié)
這篇文章主要介紹了Docker之蘋果Mac安裝Docker的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
基于Docker部署GitLab環(huán)境搭建的方法步驟
這篇文章主要介紹了基于Docker部署GitLab環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Docker Desktop啟動(dòng)后容器自啟動(dòng)關(guān)閉指南
在使用 Docker Desktop 的時(shí)候,有些容器會(huì)在每次啟動(dòng) Docker Desktop 后自動(dòng)啟動(dòng),但是這個(gè)服務(wù)我并不是每次都需要用,所以希望它不要跟隨 Docker Desktop 自動(dòng)啟動(dòng),而是在需要的時(shí)候手動(dòng)啟動(dòng),所以本文給大家介紹了Docker Desktop啟動(dòng)后容器自啟動(dòng)關(guān)閉方法2026-06-06
Docker 倉庫管理和Docker Dockerfile詳解
倉庫(Repository)是集中存放鏡像的地方,以下介紹一下 Docker Hub,當(dāng)然不止 docker hub,只是遠(yuǎn)程的服務(wù)商不一樣,操作都是一樣的,對(duì)Docker 倉庫管理相關(guān)知識(shí)感興趣的朋友一起看看吧2023-11-11
綁定Dokcer容器到主機(jī)指定網(wǎng)卡的方法
這篇文章主要介紹了綁定 Dokcer 容器到主機(jī)指定網(wǎng)卡的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03

