在上篇文章《ElasticSearch学习日志(一):基于Dockerfile构建Docker镜像以及安装分词器插件(ik/pinyin)》中,我已经做好了包含
ik
和pinyin
的分词插件镜像my-es-image:0.0.1
,本篇文章将记录基于此镜像如何搭建ElasticSearch服务集群。
由于我没有那么多的服务器,因此使用docker容器来模拟。
首先,创建文件夹cluster
,里面再创建三个文件夹,分别为node1
、node2
、node3
,模拟三台服务器。
然后分别在node1
、node2
、node3
中创建config
、data/nodes
、logs
文件夹。其中config
文件夹中存放ElasticSearch配置文件elasticsearch.yml
,data/nodes
文件夹是用来挂载数据,logs
文件夹用来挂载日志。
最终的文件夹结构如下图所示:
下面是elasticsearch.yml
配置文件内容,不同的节点只需要修改节点名称即可。
1 | # 设置开启跨域 可以让es-head访问 |
然后在cluster
文件夹下创建docker-compose.yml
文件,内容如下:
1 | version: '2' |
启动前注意项
- 确保执行过
sysctl -w vm.max_map_count=262144
,否则服务会挂掉。 - ElasticSearch Docker挂载要求相关目录及文件必须属于user(elasticsearch:1000)、group(elasticsearch:1000),如果是挂载在
home
文件夹下这个问题是没有的。
命令参考:
1 | mkdir esdatadir |
启动
docker-compose up -d
启动后,可以访问url检测各个节点的状态
curl localhost:9201
1 | { |
curl localhost:9202
1 | { |
curl localhost:9203
1 | { |
停止
docker-compose down