Docker Elasticsearch集群部署的操作過(guò)程
1 環(huán)境
(1)Centos7
(2)Docker 23.0.1
(3)Elasticsearch 7.16.3
2 服務(wù)器
名稱(chēng) | 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ù)制容器中配置目錄到磁盤(pán)目錄
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
配置文件
# 集群名稱(chēng) 所有節(jié)點(diǎn)名稱(chēng)一致 cluster.name: es-clusters # 當(dāng)前該節(jié)點(diǎn)的名稱(chēng),每個(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è)置為公開(kāi)訪問(wèn) 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 # 支持跨域訪問(wèn) 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
配置文件
# 集群名稱(chēng) 所有節(jié)點(diǎn)名稱(chēng)一致 cluster.name: es-clusters # 當(dāng)前該節(jié)點(diǎn)的名稱(chēng),每個(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è)置為公開(kāi)訪問(wèn) 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 # 支持跨域訪問(wèn) 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
配置文件
# 集群名稱(chēng) 所有節(jié)點(diǎn)名稱(chēng)一致 cluster.name: es-clusters # 當(dāng)前該節(jié)點(diǎn)的名稱(chēng),每個(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è)置為公開(kāi)訪問(wèn) 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 # 支持跨域訪問(wèn) 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)行過(guò)程分配的最大內(nèi)存
4.2 修改虛擬內(nèi)存最大映射數(shù)
系統(tǒng)虛擬內(nèi)存默認(rèn)最大映射數(shù)為65530,無(wú)法滿(mǎn)足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)無(wú)法組成集群,各自都是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)無(wú)法組成集群,各自都是master的解決辦法
到此這篇關(guān)于Docker Elasticsearch集群部署的文章就介紹到這了,更多相關(guān)Docker Elasticsearch集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker中安裝和配置Apache Pulsar實(shí)現(xiàn)
本文介紹了在Docker中安裝和配置Apache Pulsar集群,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01Docker宿主機(jī)與容器之間的文件拷貝實(shí)例詳解
現(xiàn)在公司用docker,有時(shí)候需要從容器中拷貝文件出來(lái),下面這篇文章主要給大家介紹了關(guān)于Docker宿主機(jī)與容器之間的文件拷貝的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06如何調(diào)整Docker中nginx的日志級(jí)別詳解
這篇文章主要給大家介紹了關(guān)于如何調(diào)整Docker中nginx的日志級(jí)別的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09CentOS修改docker鏡像存儲(chǔ)位置并進(jìn)行數(shù)據(jù)遷移的操作方法
本文詳細(xì)介紹了在CentOS上修改Docker鏡像存儲(chǔ)位置并進(jìn)行數(shù)據(jù)遷移的步驟,包括停止Docker服務(wù)、創(chuàng)建新的存儲(chǔ)目錄、復(fù)制現(xiàn)有數(shù)據(jù)、修改Docker配置、重啟Docker服務(wù)、驗(yàn)證配置、清理舊數(shù)據(jù)(可選)以及檢查容器和鏡像,感興趣的朋友一起看看吧2025-01-01docker默認(rèn)存儲(chǔ)路徑修改方法總結(jié)
docker默認(rèn)存儲(chǔ)路徑是/var/lib/docker,占用服務(wù)器根分區(qū),容易導(dǎo)致磁盤(pán)空間占滿(mǎn),下面這篇文章主要給大家介紹了關(guān)于docker默認(rèn)存儲(chǔ)路徑修改方法的相關(guān)資料,需要的朋友可以參考下2023-10-10