Docker搭建ES集群


Spring Boot連接ES,spring-boot-starter-data-elasticsearch。 必須為集群方式!否則報錯!

報錯:

None of the configured nodes are available

 

安裝步驟: 進入 cd  /home

1.mkdir -p es/config

2.cd es

3.mkdir data1

4.mkdir data2

5.mkdir data3

6.firewall-cmd --add-port=9300/tcp

7.firewall-cmd --add-port=9301/tcp

8.mkdir  plugins1
9.mkdir  plugins2

步驟解析:

1. 目錄文件: 是用來掛載用的,同步配置文件。容器的和外部的同步。

3. 4. 5. 表示兩個es外部掛載目錄

6. 7. 防火牆設置

8. 9 存放分詞插件

es1.yml

cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.91.66
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["192.168.91.66:9300","192.168.91.66:9301"]
discovery.zen.minimum_master_nodes: 1

es2.yml:

cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.91.66
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["192.168.91.66:9300","192.168.91.66:9301"]
discovery.zen.minimum_master_nodes: 1

 

步驟解析:

node.name: es-node1  集群中保證唯一
discovery.zen.minimum_master_nodes: 1  master節點有1個

偽集群的方式,兩個配置文件這里是不一樣的: 通過端口號區別不同的ES
http.port: 9200
transport.tcp.port: 9300


將上述兩個配置文件放入到:
es/config

 


 

啟動:

容器1:

便於看:

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d  -p 9200:9200 -p 9300:9300 -p 5601:5601

-v  /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml 

-v /home/es/plugins1:/usr/share/elasticsearch/plugins   

-v /home/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch

 

應該這樣運行: 格式化

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d  -p 9200:9200 -p 9300:9300 -p 5601:5601 -v  /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /home/es/plugins1:/usr/share/elasticsearch/plugins   -v /home/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch

 

解析: 設置jvm內存  端口號  掛載

 

容器2:

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301

-v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml 

-v /home/es/plugins2:/usr/share/elasticsearch/plugins   

-v /home/es/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch

 格式化指令:

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml  -v /home/es/plugins2:/usr/share/elasticsearch/plugins  -v /home/es/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch

 

注:如果ELK選的6.X版本的,那么需將data1 data2 data3 開啟777權限=> chmod 777 data1 data2 data3

 

設置:

3.調高JVM線程數限制數量

在centos窗口中,修改配置sysctl.conf

vim /etc/sysctl.conf
加入如下內容:
vm.max_map_count=262144

啟用配置:

sysctl -p

 

 

如果沒有啟動成功:

 訪問:

http://192.168.91.66:9200/_cat/nodes?pretty

 

可以參考:https://blog.csdn.net/belonghuang157405/article/details/83301937


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM