docker搭建es集群ik分词kibana

实际应用中应是多台服务器做集群,这里演示仅一台服务器用端口号区分的伪集群,这里忽略docker容器安装JDK等必要基础环境,需悉知.

1.拉取相应版本es

docker pull elasticsearch:6.8.6

2.启动容器(注明:可将第13步可在此处设置-v /usr/local/data:/usr/share/elasticsearch/data)

docker run --name elasticsearch-00 -v /usr/local/data:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 -d elasticsearch:6.8.6

启动第二个容器时或许会出现错误:

ERROR: bootstrap checks failed max virtual memory areas vm.max_map_count [65530]... ...

此时切换root权限:

$ vi /etc/sysctl.conf 

 设置:

vm.max_map_count=262144

并执行:

$ sysctl -p

 

docker run --name elasticsearch-01 -p 9201:9201 -p 9301:9301 -d elasticsearch:6.8.6
docker run --name elasticsearch-02 -p 9202:9202 -p 9302:9302 -d elasticsearch:6.8.6

3.进入容器elasticsearch-00

docker exec it elasticsearch-00 /bin/bash

4.进入目录config下,并编辑elasticsearch.yml

$ cd config
$ vi elasticsearch.yml
cluster.name: elasticsearch    #集群名称
node.name: node-00 #节点名称,集群内不可重复
network.bind_host: 0.0.0.0 
network.publish_host: 127.0.0.1 #宿主机IP地址
http.port: 9200 #开放htpp端口
transport.tcp.port: 9300 #开放tcp端口
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true #可推荐主节点 
node.data: true  #可存储数据
discovery.zen.ping.unicast.hosts: #发现集群 ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2 #集群主节点最小值2

5.保存并退出容器

$ wq
$ exit # 可忽略此处跳至6

同样其余两个节点都得编辑.yml文件并修改相应端口及节点名称

6.重启集群容器(可忽略此步,跳至8)

$ docker restart elasticsearch-00

7.访问

http://127.0.0.1:9200/_cat/nodes

出现:

即为成功!

8.下载对应的ik分词,并拷贝到容器内,进入下载好的ik分词目录下:

$ docker cp elasticsearch-analysis-ik-6.8.6.zip elasticsearch-00:/usr/share/elasticsearch/plugins

9.进入容器elasticsearch-00

$ cd /usr/share/elasticsearch/plugins

创建文件夹ik

$ mkdir ik

10.将./plugins下压缩包移动到ik文件夹下并解压最后删除压缩包,其他节点相同步骤

$ mv elasticsearch-analysis-ik-6.8.6.zip ./ik/
$ cd ik
$ unzip elasticsearch-analysis-ik-6.8.6.zip
$ rm -rf elasticsearch-analysis-ik-6.8.6.zip
$ exit # 退出容器
$ docker restart elasticsearch-00 #重启服务

11.kibana 

$ 下篇博文在记录吧,再补充一些其他的

12.docker容器默认一般内存为1G比较小,我们给集群(示例ID:dab8a6b90cb4)容器限定到约6G

$ docker update -m 6000M --memory-swap 6000M dab8a6b90cb4

13.docker启动es默认将数据放在容器内部,当我们不小心删除容器的话,可能会造成数据丢失,简单的持久化到本地,挂载本地目录到容器内部

docker run -it -v /usr/local/data:/usr/share/elasticsearch/data elasticsearch-00 /bin/bash

 

你可能感兴趣的:(java,docker,elasticsearch,ubuntu,centos)