Docker Elasticsearch集群部署的操作過程
1 環(huán)境
(1)Centos7
(2)Docker 23.0.1
(3)Elasticsearch 7.16.3
2 服務(wù)器
名稱 | ip地址 | 內(nèi)存 |
---|---|---|
節(jié)點一 | 192.16.109.113 | 16G |
節(jié)點二 | 192.16.109.114 | 16G |
節(jié)點三 | 192.16.109.115 | 16G |
3部署
在三個服務(wù)器節(jié)點上執(zhí)行如下操作:
準備映射目錄
切換到/home目錄中,創(chuàng)建elasticsearch目錄,切換到elasticsearch目錄中。
cd /home/ mkdir elasticsearch cd elasticsearch
臨時啟動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
移除臨時啟動elasticsearch容器
docker stop elasticsearch docker rm elasticsearch
3.1 節(jié)點一
修改/home/elasticsearch/config/elasticsearch.yml
配置文件
# 集群名稱 所有節(jié)點名稱一致 cluster.name: es-clusters # 當前該節(jié)點的名稱,每個節(jié)點不能重復(fù)es-node-1,es-node-2,es-node-3 node.name: es-node-1 # 當前該節(jié)點是不是有資格競選主節(jié)點 node.master: true # 當前該節(jié)點是否存儲數(shù)據(jù) node.data: true # 設(shè)置為公開訪問 network.host: 0.0.0.0 # 設(shè)置其它節(jié)點和該節(jié)點交互的本機器的ip地址,三臺各自為 network.publish_host: 192.16.109.113 # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點之間溝通端口 transport.tcp.port: 9300 # 支持跨域訪問 http.cors.enabled: true http.cors.allow-origin: "*" # 配置集群的主機地址 discovery.seed_hosts: ["192.16.109.113","192.16.109.114","192.16.109.115"] # 初始主節(jié)點,使用一組初始的符合主條件的節(jié)點引導(dǎo)集群 cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"] # 節(jié)點等待響應(yīng)的時間,默認值是30秒,增加這個值,從一定程度上會減少誤判導(dǎo)致腦裂 discovery.zen.ping_timeout: 30s # 配置集群最少主節(jié)點數(shù)目,通常為 (可成為主節(jié)點的主機數(shù)目 / 2) + 1 discovery.zen.minimum_master_nodes: 2 # 禁用交換內(nèi)存,提升效率 bootstrap.memory_lock: false
正式運行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é)點二
修改/home/elasticsearch/config/elasticsearch.yml
配置文件
# 集群名稱 所有節(jié)點名稱一致 cluster.name: es-clusters # 當前該節(jié)點的名稱,每個節(jié)點不能重復(fù)es-node-1,es-node-2,es-node-3 node.name: es-node-2 # 當前該節(jié)點是不是有資格競選主節(jié)點 node.master: true # 當前該節(jié)點是否存儲數(shù)據(jù) node.data: true # 設(shè)置為公開訪問 network.host: 0.0.0.0 # 設(shè)置其它節(jié)點和該節(jié)點交互的本機器的ip地址,三臺各自為 network.publish_host: 192.16.109.114 # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點之間溝通端口 transport.tcp.port: 9300 # 支持跨域訪問 http.cors.enabled: true http.cors.allow-origin: "*" # 配置集群的主機地址 discovery.seed_hosts: ["192.16.109.113","192.16.109.114","192.16.109.115"] # 初始主節(jié)點,使用一組初始的符合主條件的節(jié)點引導(dǎo)集群 cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"] # 節(jié)點等待響應(yīng)的時間,默認值是30秒,增加這個值,從一定程度上會減少誤判導(dǎo)致腦裂 discovery.zen.ping_timeout: 30s # 配置集群最少主節(jié)點數(shù)目,通常為 (可成為主節(jié)點的主機數(shù)目 / 2) + 1 discovery.zen.minimum_master_nodes: 2 # 禁用交換內(nèi)存,提升效率 bootstrap.memory_lock: false
正式運行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é)點三
修改/home/elasticsearch/config/elasticsearch.yml
配置文件
# 集群名稱 所有節(jié)點名稱一致 cluster.name: es-clusters # 當前該節(jié)點的名稱,每個節(jié)點不能重復(fù)es-node-1,es-node-2,es-node-3 node.name: es-node-3 # 當前該節(jié)點是不是有資格競選主節(jié)點 node.master: true # 當前該節(jié)點是否存儲數(shù)據(jù) node.data: true # 設(shè)置為公開訪問 network.host: 0.0.0.0 # 設(shè)置其它節(jié)點和該節(jié)點交互的本機器的ip地址,三臺各自為 network.publish_host: 192.16.109.115 # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點之間溝通端口 transport.tcp.port: 9300 # 支持跨域訪問 http.cors.enabled: true http.cors.allow-origin: "*" # 配置集群的主機地址 discovery.seed_hosts: ["192.16.109.113","192.16.109.114","192.16.109.115"] # 初始主節(jié)點,使用一組初始的符合主條件的節(jié)點引導(dǎo)集群 cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"] # 節(jié)點等待響應(yīng)的時間,默認值是30秒,增加這個值,從一定程度上會減少誤判導(dǎo)致腦裂 discovery.zen.ping_timeout: 30s # 配置集群最少主節(jié)點數(shù)目,通常為 (可成為主節(jié)點的主機數(shù)目 / 2) + 1 discovery.zen.minimum_master_nodes: 2 # 禁用交換內(nèi)存,提升效率 bootstrap.memory_lock: false
正式運行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é)點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 注意事項
4.1 運行elasticsearch啟動參數(shù)
注意:我們啟動參數(shù)設(shè)置的-e ES_JAVA_OPTS="-Xms4g -Xmx4g"
,根據(jù)服務(wù)器內(nèi)存實際情況調(diào)整。
● Xms 為jvm啟動是分配的最大內(nèi)存
● Xmx 為jvm運行過程分配的最大內(nèi)存
4.2 修改虛擬內(nèi)存最大映射數(shù)
系統(tǒng)虛擬內(nèi)存默認最大映射數(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é)點無法組成集群,各自都是master的解決辦法
(1)關(guān)閉所有節(jié)點,或者直接刪除容器
(2)在三個節(jié)點上清空/home/elasticsearch/data
節(jié)點數(shù)據(jù)
cd /home/elasticsearch/data rm -rf *
(3)重新啟動所有節(jié)點
5 參考博客
1.docker進行ElasticSearch集群部署
2.Elasticsearch集群搭建及各節(jié)點無法組成集群,各自都是master的解決辦法
到此這篇關(guān)于Docker Elasticsearch集群部署的文章就介紹到這了,更多相關(guān)Docker Elasticsearch集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker中安裝和配置Apache Pulsar實現(xiàn)
本文介紹了在Docker中安裝和配置Apache Pulsar集群,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01CentOS修改docker鏡像存儲位置并進行數(shù)據(jù)遷移的操作方法
本文詳細介紹了在CentOS上修改Docker鏡像存儲位置并進行數(shù)據(jù)遷移的步驟,包括停止Docker服務(wù)、創(chuàng)建新的存儲目錄、復(fù)制現(xiàn)有數(shù)據(jù)、修改Docker配置、重啟Docker服務(wù)、驗證配置、清理舊數(shù)據(jù)(可選)以及檢查容器和鏡像,感興趣的朋友一起看看吧2025-01-01