ElasticSearch集群支持動態請求的方式搭建集群和靜態配置文件搭建集群
成都創新互聯公司服務項目包括武穴網站建設、武穴網站制作、武穴網頁制作以及武穴網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,武穴網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到武穴省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
關于集群的動態連接方式官方的文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html
前置準備工作關于參數的官網說明:
下載elsticsearch 7.8.0
docker pull elasticsearch:7.8.0創建一個網絡es_net 用來放elasticsearch集群
docker network create --subnet=172.18.0.0/24 es_net根據官網的可以得知 elasticsearch 的安裝位置在/usr/share/elasticsearch目錄下,為了方便后面的操作,創建數據卷將elasticsearch產生的數據映射到主機中,防止es宕機數據無法恢復。
創建數據卷
docker volume create es_data01docker volume create es_data02docker volume create es_data03#公共配置文件,以及插件存放位置docker volume create es_confdocker volume create es_plugins分別存放數據、配置、插件
創建3個yml配置文件
意味著只要啟動ElasticSearch然后通過ES自帶的RestFul風格的操作既可以完成集群的搭建
dockerhub中官方的啟動方式是單節點的啟動
先單獨啟動3個ElasticSearch節點
啟動es01
docker run -it -d --restart always -p 9201:9200 -p 9301:9300 \--name es01 --network=es_net --ip=172.18.0.101 \-v es_data01:/usr/share/elasticsearch/data \-v es_conf:/usr/share/elasticsearch/conf \-v es_plugins:/usr/share/elasticsearch/plugins \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0啟動es02
docker run -it -d --restart always -p 9202:9200 -p 9302:9300 \--name es02 --network=es_net --ip=172.18.0.102 \-v es_data02:/usr/share/elasticsearch/data \-v es_conf:/usr/share/elasticsearch/conf \-v es_plugins:/usr/share/elasticsearch/plugins \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0啟動es03
docker run -it -d --restart always -p 9203:9200 -p 9303:9300 \--name es03 --network=es_net --ip=172.18.0.103 \-v es_data03:/usr/share/elasticsearch/data \-v es_conf:/usr/share/elasticsearch/conf \-v es_plugins:/usr/share/elasticsearch/plugins \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0通過PUT方式
通過linux的curl命令操作即可
在es02和es03上通過
更新persistent
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{ "persistent" : { "indices.recovery.max_bytes_per_sec" : "50mb" }}'更新transient
curl -X PUT "localhost:9200/_cluster/settings?flat_settings=true&pretty" -H 'Content-Type: application/json' -d'{ "transient" : { "indices.recovery.max_bytes_per_sec" : "20mb" }}'刪除transient配置內容
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{ "transient" : { "indices.recovery.max_bytes_per_sec" : null }}'刪除所有transient設置
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{ "transient" : { "indices.recovery.*" : null }}'ElasticSearch通過靜態配置文件的方式啟動集群失敗的原因應該是啟動容器的時候應該少了參數。
上說將來的版本不再使用discovery.zen.ping.unicast.hosts也就變成discovery.seed_hosts
es-node1節點的配置文件信息
vim /var/lib/docker/volumes/es_conf/_data/es01.yml請修改注釋行宿主機ip,以及es集群通信的端口地址
cluster.name: elasticsearch-clusternode.name: es-node1network.bind_host: 0.0.0.0network.publish_host: 192.168.117.231 #修改為docker的宿主機iphttp.port: 9200 #這個是容器內部的,所以不用改transport.tcp.port: 9300 #這個是容器內部的,所以不用改http.cors.enabled: truehttp.cors.allow-origin: "*"node.master: true node.data: true discovery.seed_hosts: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] discovery.zen.minimum_master_nodes: 2indices.query.bool.max_clause_count: 10240#使用一臺主機的不同端口搭建,在啟動docker容器的時候通過-p指定映射端口通過上述配置文件中可知需要映射端口分別是9300、9301、9302,這些端口是用來進行集群通信的
也就是三個節點綁定端口分別是-p 9300:9300,-p 9301:9300,-p 9302:9300,
同時我們可以推出使用-p 9200:9200,-p 9201:9200,-p 9202:9200
做成表格:
也就是說宿主機(192.168.117.231)的9200-9202,9300-9302端口都會被es集群使用
es-node2節點的配置文件信息
vim /var/lib/docker/volumes/es_conf/_data/es02.yml與es-node1不同的地方就是節點名改一下
cluster.name: elasticsearch-clusternode.name: es-node2network.bind_host: 0.0.0.0network.publish_host: 192.168.117.231 #修改為docker的宿主機iphttp.port: 9200 #這個是容器內部的,所以不用改transport.tcp.port: 9300 #這個是容器內部的,所以不用改http.cors.enabled: truehttp.cors.allow-origin: "*"node.master: true node.data: true discovery.seed_hosts: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"]discovery.zen.minimum_master_nodes: 2indices.query.bool.max_clause_count: 10240#使用一臺主機的不同端口搭建,在啟動docker容器的時候通過-p指定映射端口es-node3節點的配置文件信息
vim /var/lib/docker/volumes/es_conf/_data/es02.yml與es-node1不同的地方就是節點名改一下
cluster.name: elasticsearch-clusternode.name: es-node3network.bind_host: 0.0.0.0network.publish_host: 192.168.117.231 #修改為docker的宿主機iphttp.port: 9200 #這個是容器內部的,所以不用改transport.tcp.port: 9300 #這個是容器內部的,所以不用改http.cors.enabled: truehttp.cors.allow-origin: "*"node.master: true node.data: true discovery.seed_hosts: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"]discovery.zen.minimum_master_nodes: 2indices.query.bool.max_clause_count: 10240#使用一臺主機的不同端口搭建,在啟動docker容器的時候通過-p指定映射端口依次啟動集群es-node1啟動命令,docker進程別名es01
使用的網絡是上面創建的網卡es_net,指定節點的內部網絡ip 172.18.0.100需要和es_net同網段
docker run -it -d --restart always -p 9200:9200 -p 9300:9300 \--name es01 --network=es_net --ip=172.18.0.100 \-v es_data01:/usr/share/elasticsearch/data \-v /var/lib/docker/volumes/es_conf/_data/es01.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v es_plugins:/usr/share/elasticsearch/plugins \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0ES_JAVA_OPTS指定使用的es的內存,防止啟動es占用太多內存空間
--restart always開機自啟
數據卷映射略,唯一需要注意的是配置文件es01.yml映射到了內部的es啟動時,引使用的配置文件。
到此這篇關于docker安裝ElasticSearch:7.8.0集群的文章就介紹到這了,更多相關docker安裝ElasticSearch集群內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
網頁題目:docker安裝ElasticSearch:7.8.0集群的詳細教程
文章源于:http://vcdvsql.cn/article2/sspic.html
成都網站建設公司_創新互聯,為您提供用戶體驗、響應式網站、定制開發、網頁設計公司、全網營銷推廣、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯