docker-elasticsearch集群安装

docker-elasticsearch集群安装

前言

elasticsearch是流行的全文检索的开源实现,并提供elk的日志分析支持,分词和执行效率高,docker的安装方式省略了很多配置和安装设置步骤,更加方便,而且便于集群扩展。

安装步骤

本文以elasticsearch-6.5.0版本为例,按照1主1从的方式安装部署,前提已经在centos上安装好了docker环境

1.    创建es挂载目录

cd /home/es

mkdir -p es/config

2.    创建es数据存放目录

cd es

mkdir data1

mkdir data2

3.    创建分词器等插件目录

cd es

mkdir plugin1

mkdir plugin2

4.    编辑es的配置文件,es1.yml,es2.yml。对应两个node的配置

es1.yml:

#es1.yml

cluster.name: elasticsearch-cluster

node.name: es-node1

network.bind_host: 0.0.0.0

network.publish_host: 192.168.1.189

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: [“192.168.1.189:9300”,“192.168.1.189:9301”]

discovery.zen.minimum_master_nodes: 1

es2.yml:

#es2.yml

cluster.name: elasticsearch-cluster

node.name: es-node2

network.bind_host: 0.0.0.0

network.publish_host: 192.168.10.180

http.port: 9201

transport.tcp.port: 9301

http.cors.enabled: true

http.cors.allow-origin: “*”

node.master: true

node.data: true

discovery.zen.ping.unicast.hosts: [“192.168.10.180:9300”,“192.168.10.180:9301”]

discovery.zen.minimum_master_nodes: 1

5.    宿主机用户、用户组创建

elasticsearch需要以elasticsearch的用户启动,同时需要把挂卷对应的目录的所属更改成elasticsearch所属

-    创建用户,用户组,修改目录所属以及elasticsearch.yml的权限

[root@localhost ~]# groupadd elasticsearch

[root@localhost ~]# useradd -g elasticsearch elasticsearch

[root@localhost ~]# chown -R elasticsearch:root /home/es

[root@localhost ~]# chmod 777 /home/es/es1.yml

[root@localhost ~]# chmod 777 /home/es/es2.yml

6.    优化宿主机的句柄、文件数量

-    配置系统最大打开文件描述符

vim /etc/sysctl.conf

设置 vm.max_map_count = 262144

设置完成后执行以下命令生效

sysctl -p

-    配置进程最大打开文件描述符

vim /etc/security/limits.conf

在文件最后添加:

* soft nofile 65536

* hard nofile 65536

7.     docker 启动集群节点

-    启动容器1–es01:

docker run -d -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /home/es/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/es/plugins1:/usr/share/elasticsearch/plugins -v /home/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch:6.5.0

-    启动容器2–es02:

docker run -d -p 9201:9201 -p 9301:9301 -v /home/es/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/es/plugins2:/usr/share/elasticsearch/plugins -v /home/es/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch:6.5.0

8.    安装es-head插件:

-    拉取head镜像

docker pull mobz/elasticsearch-head:5

-    运行head插件容器

docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

9.    查看elasticsearch的集群状态:

http://192.168.10.180:9200/_cat/nodes?pretty

10.    elastic-search 自定义词库配置

对于中文和拼音的检索,业内推荐ik和pinyin的分词会更加精准的查询定位到结果,所以我们可以添加ik和pinyin的词库。

-    先从网上下载ik和pinyin的词库压缩文件。

-    解压压缩文件到es映射的卷标所在的plugin目录下即可

-    解压完成应该可以在plugin目录下看到ik,pinyin两个目录,目录里面有对应的jar文件

当前我们的映射目录在/home/es/plugins/下面

  1. elastic-search jvm内存调整

修改/config/jvm.options文件的内存配置

10-:-XX:UseAVX=2

按照本文使用docker启动的es没有将jvm.options文件映射到卷标外,需要在容器内进行上述操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值