elasticsearch集群
1. 拉取镜像
docker pull elasticsearch:7.6.1
docker pull kibana:7.6.1
本地文件结构
elasticsearch
master_10
config
elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-master-10
network.host: 0.0.0.0
network.publish_host: 180.200.7.10
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: ["180.200.7.10:9300","180.200.7.11:9300","180.200.7.12:9300"]
discovery.zen.minimum_master_nodes: 1
cluster.initial_master_nodes: es-master-10
data
slave_11
config
elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node-11
network.host: 0.0.0.0
network.publish_host: 180.200.7.11
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: ["180.200.7.10:9300","180.200.7.11:9300","180.200.7.12:9300"]
discovery.zen.minimum_master_nodes: 1
data
slave_12
config
elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node-12
network.host: 0.0.0.0
network.publish_host: 180.200.7.12
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: ["180.200.7.10:9300","180.200.7.11:9300","180.200.7.12:9300"]
discovery.zen.minimum_master_nodes: 1
data
2.docker-compose.yml 文件
version: '3.6'
services:
es_master_180_10:
image: elasticsearch:7.6.1
container_name: es_master_180_10
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /www/wwwroot/2007_SRM/elasticsearch/master_10/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /www/wwwroot/2007_SRM/elasticsearch/master_10/data:/usr/share/elasticsearch/data
privileged: true
ports:
- 9210:9200
- 9310:9300
networks:
es:
ipv4_address: 180.200.7.10
es_slave_180_11:
image: elasticsearch:7.6.1
container_name: es_slave_180_11
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /www/wwwroot/2007_SRM/elasticsearch/slave_11/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /www/wwwroot/2007_SRM/elasticsearch/slave_11/data:/usr/share/elasticsearch/data
privileged: true
ports:
- 9211:9200
- 9311:9300
networks:
es:
ipv4_address: 180.200.7.11
es_slave_180_12:
image: elasticsearch:7.6.1
container_name: es_slave_180_12
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /www/wwwroot/2007_SRM/elasticsearch/slave_12/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /www/wwwroot/2007_SRM/elasticsearch/slave_12/data:/usr/share/elasticsearch/data
privileged: true
ports:
- 9212:9200
- 9312:9300
networks:
es:
ipv4_address: 180.200.7.12
kibana:
image: kibana:7.6.1
container_name: kibana
environment:
- "ELASTICSEARCH_HOSTS=http://180.200.7.12:9200"
- "SERVER_PORT=5601"
- "SERVER_HOST=0.0.0.0"
ports:
- 5601:5601
networks:
es:
ipv4_address: 180.200.7.13
networks:
es:
driver: bridge
ipam:
config:
- subnet: "180.200.7.0/24"
3.注意
- 一个es的容器在构建的时候是需要系统提供200M的内存(建议实现)
- 系统需要配置 sysctl -w vm.max_map_count=262144 参考地址 https://www.jianshu.com/p/79946b7a9c48 3. 配置es的共享目录的时候需要给文件操作的权限777
4.引入中文分词
dockerfile
FROM elasticsearch:7.6.1
COPY ./elasticsearch-analysis-ik-7.6.1.zip /usr/share/elasticsearch/plugins/
RUN cd /usr/share/elasticsearch/plugins \
&& mkdir ik \
&& mv elasticsearch-analysis-ik-7.6.1.zip ik/ \
&& cd ik \
&& unzip elasticsearch-analysis-ik-7.6.1.zip \
&& rm -rf elasticsearch-analysis-ik-7.6.1.zip