docker 安装 es
# 如果公司docker仓库没有es6.6.0 则docker pull 有则直接执行第二步
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 --restart always -e "discovery.type=single-node" elasticsearch:6.6.0
#或者
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.0
#可选安装ElasticSearch管理界面elasticsearch-hq
docker run -d --name elastic-hq -p 5000:5000 --restart always elastichq/elasticsearch-hq
# docker 安装 es
docker run -d --net=host --name elastic --restart=always registry.api.xxx.com/devops/elasticsearch:6.6.0
# 进入 docker es 容器
docker exec -it elastic /bin/bash
# 安装icu插件
bin/elasticsearch-plugin install analysis-icu
cd /data0
mkdir es6
cd es6
mkdir data
chmod 777 data
mkdir plugins
docker cp container_id:/usr/share/elasticsearch/plugins .
docker run -d --name=es6-brpro -p 9201:9200 -p 9301:9300 --restart=always -m 16000M -e "discovery.type=single-node" -v /data0/es6/data:/usr/share/elasticsearch/data -v /data0/es6/plugins:/usr/share/elasticsearch/plugins registry.api.wb.com/bop-devops/elasticsearch:6.6.0
es设置内存大小:
给es分配内存时要注意,至少要分配一半儿内存留给 Lucene。
分配给 es 的内存最好不要超过 32G ,因为如果堆大小小于 32 GB,JVM 可以利用指针压缩,这可以大大降低内存的使用:每个指针 4 字节而不是 8 字节。如果大于32G 每个指针占用 8字节,并且会占用更多的内存带宽,降低了cpu性能。
还有一点, 要关闭 swap 内存交换空间,禁用swapping。频繁的swapping 对服务器来说是致命的。
总结:给es JVM栈的内存最好不要超过32G,留给Lucene的内存越大越好,Lucene把所有的segment都缓存起来,会加快全文检索
docker exec -it es6-pro /bin/sh
cd config
vi jvm.options
-Xms8g
-Xmx8g
目前分词插件 analysis-icu 国外网站被墙了
下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-6.6.0.zip
直接使用命令 提示下载安装失败。
解决办法:
- 把analysis-icu-6.6.0.zip 下载到本地电脑,然后用ssh 命令或者 nc 命令 上传到服务器上。
- 创建Dockerfile,
FROM registry.api.zz.com/devops/elasticsearch:6.6.0
ADD analysis-icu-6.6.0.zip /usr/share/elasticsearch/plugins
RUN cd /usr/share/elasticsearch/plugins \
&& mkdir analysis-icu \
&& unzip analysis-icu-6.6.0.zip -d ./analysis-icu \
&& rm -rf analysis-icu-6.6.0.zip
WORKDIR /usr/share/elasticsearch
- 在Dockerfile 同一目录下,执行docker build
docker build -t registry.api.zz.com/devops/elasticsearch-juejin:6.6.0 .
docker run -it --net=host --name elastic registry.api.zz.com/devops/elasticsearch-juejin:6.6.0 /bin/bash
# 如果安装失败
docker ps
docker logs elastic
docker rm -f elastic
docker run -d --net=host --name elastic registry.api.zz.com/devops/elasticsearch-juejin:6.6.0
# 推送到docker 仓库
docker images
docker login registry.api.zz.com
docker push registry.api.zz.com/devops/elasticsearch-juejin:6.6.0