由于机器没这么多,所以用docker模拟真正的集群搭建。
1、准备工作
1-1、准备docker环境:
- 使用yum安装docker: yum install -y docker-io
- 安装完成后,开启docker: systemctl start docker;
- 查看docker状态: systemctl status docker;
- 搜索elasticsearch的镜像,如下第一个就是官方镜像
1-2、准备三台elasticsearch容器环境:
- 拉取镜像,使用docker pull elasticsearch:6.5.0
- 启动镜像,开启docker容器(elasticsearch)
- 通过ps -ef | grep elasticsearch 查看elasticsearch是否启动成功。
- 发现只有一个查询的进程,而我们的docker容器中的es并没有启动成功,我们查看日志
- 发现是因为宿主机中的max_map_count低了,我们将它扩大到262144
- 重新启动docker 容器 docker start es1 //注释 es1为上面创建的docker容器的名字,然后在重复上面的测试步骤即可
-
在浏览器中测试下
-
第一台已经准备完毕,那么按照上面步骤将剩下的两台准备
备注:如果再进程中可以看到三台都启动成功的话,若是访问不成功的话,可以查看防火墙的状态,或者稍微等待些时间即可。
2、搭建集群
- 由于我们需要编辑配置文件来完成es伪分布式集群的配置,但该容器默认不自带vi或vim命令,所以我们还得先进入到容器里,将所有的实例都安装上vim命令,方便以后修改,使用yum install -y vim安装
- 进入容器 docker exec -it es1 bash,然后执行yum install -y vim
- 进入/usr/share/elasticsearch目录,修改config/elasticsearch.yml文件,在文件末尾追加下面内容
- 另外两台容器的更改文件如下:
- 配置完成后,重启三台容器 docker restart 容器名
- 重启完成后,执行下面命令查看集群状态
如果需要其他配置,以下可以作为参考
2-2、安装elasticsearch-head可视化插件:
- 同样的我们使用docker镜像安装,首先我们先查找一下
- 拉取镜像 docker pull mobz/elasticsearch-head:5
- 使用镜像安装成为es-head容器 docker run -id --name es-head -p 9100:9100 mobz/elasticsearch-head:5
- 进入es-head容器,docker exec -it es-head bash
- 因为同样需要编辑文件,所以我们下载vim 使用yum install -y vim
- 若是安装时报错,说yum command not found ,使用apt-get update,然后使用apt-get install vim -y 进行安装下载即可
- es-head使用的grunt-server作为服务器的,所以他的启动后监听的host默认是localhost, 所以我们要修改其中的配置文件,增加一些配置,这样可以使得能够被外部访问的到,修改Gruntfile.js文件
- 修改完毕后,重启es-head容器,docker restart es-head
打开浏览器测试
2-3、安装中文IK分词器插件:
- 我这es的版本为6.5.0的,所以我下载的ik分词器的版本也是6.5.0,如果版本不是这个的,可以自行从https://github.com/medcl/elasticsearch-analysis-ik/releases这个地址自己查找,那么我这里使用的就是6.5.0的了
- 进入es容器 docker exec -it es1 bash
- 执行下载 wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.0/elasticsearch-analysis-ik-6.5.0.zip
- 下载完成后,进入plugins文件夹,创建文件ik mkdir ik
- 将下载的elasticsearch-head插件移动到ik文件夹,执行解压,解压完成后,将源文件删除
- 如果你下载的版本和es的版本不对的话,可以通过更改ik分词器中的 plugin-descriptor.properties来使其OK
- 其余两个节点同样操作,使其ik分词器安装成功
- 重启三个es的容器,至此ik分词器安装成功