docker搭建ES集群
时间: 2023-10-31 12:04:55 浏览: 104
docer-composer部署ES集群
搭建 ES 集群需要以下步骤:
1. 安装 Docker 和 Docker Compose;
2. 编写 docker-compose.yml 文件,定义 ES 集群的配置;
3. 启动 ES 集群。
下面是具体的步骤:
1. 安装 Docker 和 Docker Compose
如果你已经安装了 Docker 和 Docker Compose,可以跳过这一步。
安装 Docker 可以参考官方文档:https://docs.docker.com/engine/install/。
安装 Docker Compose 可以参考官方文档:https://docs.docker.com/compose/install/。
2. 编写 docker-compose.yml 文件
在本地创建一个文件夹,比如 es-cluster,然后在该文件夹下创建一个名为 docker-compose.yml 的文件,并在该文件中定义 ES 集群的配置。
下面是一个简单的 docker-compose.yml 配置,定义了一个包含 3 个节点的 ES 集群,每个节点的内存为 1GB,使用 ES 版本为 7.14.0:
```
version: '3'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es01-data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es02-data:/usr/share/elasticsearch/data
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es03
environment:
- node.name=es03
- cluster.name=es-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es03-data:/usr/share/elasticsearch/data
volumes:
es01-data:
es02-data:
es03-data:
```
在上面的配置中,我们定义了 3 个服务,分别是 es01、es02 和 es03,分别对应 ES 集群的 3 个节点。
每个服务都使用了相同的 ES 镜像,并且定义了一些环境变量,比如节点名称、集群名称、发现种子主机等等。其中,`discovery.seed_hosts` 和 `cluster.initial_master_nodes` 是两个非常重要的参数,它们用于定义 ES 集群的初始状态,必须保证所有节点的配置都是一致的。
另外,我们还定义了一些存储卷,用于将 ES 数据保存在本地磁盘上,避免数据丢失。
3. 启动 ES 集群
在终端中进入 es-cluster 文件夹,并执行以下命令:
```
docker-compose up
```
这会启动 ES 集群,启动过程可能需要一些时间,因为 Docker 需要下载 ES 镜像,并启动 3 个节点。
启动成功后,可以在浏览器中访问 http://localhost:9200,如果看到类似于下面的输出,说明 ES 集群已经成功启动:
```
{
"name" : "es01",
"cluster_name" : "es-cluster",
"cluster_uuid" : "qyWwbX0zQnC5qFwsKjC8Gw",
"version" : {
"number" : "7.14.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
"build_date" : "2021-07-29T20:49:32.864135063Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
```
到此为止,我们已经成功搭建了一个 ES 集群。
阅读全文