1、编写一个docker-compose.yml 文件
version: '2.2'//指定docker-compose的版本
services://声明使用compose部署的服务
es01://服务名
image: elasticsearch:7.12.1//使用的镜像的名
container_name: es01//启动后的容器名
environment:
- node.name=es01//本节点名称
- cluster.name=es-docker-cluster//集群名称,加入到哪个集群
- discovery.seed_hosts=es02,es03//声明集群中其他节点的名称
- cluster.initial_master_nodes=es01,es02,es03//声明主节点
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"//指定es的内存
volumes:
- data01:/usr/share/elasticsearch/data//数据卷
ports:
- 9200:9200//端口映射
networks:
- elastic//网络
es02:
image: elasticsearch:7.12.1
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- data02:/usr/share/elasticsearch/data
ports:
- 9201:9200
networks:
- elastic
es03:
image: elasticsearch:7.12.1
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
ports:
- 9202:9200
volumes://创建数据卷
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks://创建网络
elastic:
driver: bridge
2、把docker-compose.yml ,上传到linux中
3、修改linux系统权限 ,修改/etc/sysctl.conf
文件
vi /etc/sysctl.conf
添加下面的内容:
vm.max_map_count=262144
然后执行命令,让配置生效:
sysctl -p
通过docker-compose启动集群:
docker-compose up -d
4、使用cerebro来监控es集群状态,
官方网址:GitHub - lmenezes/cerebro
5、创建索引库
1)利用kibana的DevTools创建索引库
在DevTools中输入指令:
PUT /itcast
{
"settings": {
"number_of_shards": 3, // 分片数量
"number_of_replicas": 1 // 副本数量
},
"mappings": {
"properties": {
// mapping映射定义 ...
}
}
}
2)利用cerebro创建索引库
查看分片效果