Docker 搭建 elasticsearch 集群

Posted shifu204

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 搭建 elasticsearch 集群相关的知识,希望对你有一定的参考价值。

前置工作

1.虚拟机内存设置起码2个g以上,不然巨卡

2.需要修改linux的进程数限制

 

vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p

 

  

创建es集群

1.下载es镜像

docker pull elasticsearch:5.6.11

  

2.添加挂载的配置文件与文件夹

mkdir -p /mydata/elasticsearch/conf/
mkdir -p /mydata/elasticsearch2/conf/
mkdir -p /mydata/elasticsearch3/conf/

  

创建配置文件es1
# 开启跨域,为了让es-head可以访问
http.cors.enabled: true
http.cors.allow-origin: "*"

# 集群的名称
cluster.name: elasticsearch
# 节点的名称
node.name: es1
# 指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
# 允许该节点存储数据(默认开启)
node.data: true
# 允许任何ip访问
network.host: 0.0.0.0
# 通过这个ip列表进行节点发现,我这里配置的是各个容器的ip
discovery.zen.ping.unicast.hosts: ["192.168.31.128:9300","192.168.31.128:9301","192.168.31.128:9302"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 – 导致脑裂 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2

  


创建配置文件es2
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elasticsearch
node.name: es2

network.host: 0.0.0.0
node.master: true
node.data: true

discovery.zen.ping.unicast.hosts: ["192.168.31.128:9300","192.168.31.128:9301","192.168.31.128:9302"]
discovery.zen.minimum_master_nodes: 2

  

创建配置文件es3
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elasticsearch
node.name: es3

network.host: 0.0.0.0
node.master: true
node.data: true

discovery.zen.ping.unicast.hosts: ["192.168.31.128:9300","192.168.31.128:9301","192.168.31.128:9302"]
discovery.zen.minimum_master_nodes: 2

  


3.集群化实例启动


实例一


docker run --name es1 -p 9200:9200 -p 9300:9300 
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 
-v /mydata/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -d elasticsearch:5.6.11

  

实例二


docker run --name es2 -p 9201:9200 -p 9301:9300 
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 
-v /mydata/elasticsearch2/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 
-v /mydata/elasticsearch2/data:/usr/share/elasticsearch/data -d elasticsearch:5.6.11

  

实例三


docker run --name es3 -p 9202:9200 -p 9302:9300 
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 
-v /mydata/elasticsearch3/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 
-v /mydata/elasticsearch3/data:/usr/share/elasticsearch/data -d elasticsearch:5.6.11

  

 
 

 

以上是关于Docker 搭建 elasticsearch 集群的主要内容,如果未能解决你的问题,请参考以下文章

docker 搭建 Elasticsearch 和 Kibana

Docker搭建百亿级搜索引擎elasticsearch,还不快来看看!

采用docker-compose搭建Elasticsearch集群

ElasticSearch(十六):在docker中构建Elasticsearch集群

《果然新鲜》电商项目(47)- Docker下搭建ElasticSearch集群

Mac下docker搭建lnmp环境 + redis + elasticsearch