前言
Elasticsearch(简称 ES)是一个支持海量搜索引擎服务,当一个分布式系统需要支持海量搜索服务时都会优先上 ES。因此掌握 ES 技术也是一门进入大厂拿高薪的必修课,笔者一直在追求深入掌握 ES 技术,一方面希望自己有机会还能进大厂并站稳脚跟。退一步讲就算进不了大厂,自己也要能具备做出大厂程序员能做出来的产品,到那时就算自己经营一个日活上万的网站或者 App 也能有一份不错的收入。
之所以会选择 7.12 版本的 ES 是因为这个版本的 ES 算是一个比较新稳定的新版本,与之关联的 Kibana 版本的界面也有了较大的更新,所以选择了安装这个版本的 ES。笔者之前在 Linux 和 Windows 系统下也安装过单独的 ES 服务,但是发现都安装和配置非常麻烦,还容易报各种安装失败的错误。后来看到很多大牛都推荐使用 Docker 安装顺利,而且还方便维护,于是笔者也尝试在自己的云服务器中使用 Docker 安装 ES 和 Kibana 及中文分词器,下面我们正式进入安装步骤,本文假设读者已经在自己的云服务器中安装好了 Docker 服务,并通过执行systemctl start docker.service 命令启动了 Docker 服务。
1.创建网络
因为我们还需要部署 Kibanna 容器,因此需要让 ES 和 Kibana 容器互联,这里先创建一个网络。
docker network create es-net
2. 加载镜像
docker pull elasticsearch:7.13.4
docker pull kibana:7.13.4
3. 运行容器
ES 版本 a.b.c
mkdir -p /usr/local/es/es-data
mkdir -p /usr/local/es/es-plugins
docker run -d \
--name elasticsearch \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-e "http.host=0.0.0.0" \
-v /usr/local/es/es-data:/usr/share/elasticsearch/data \
-v /usr/local/es/es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:a.b.c
ES 版本 7.13.4
mkdir -p /usr/local/es/es-data
mkdir -p /usr/local/es/es-plugins
docker run -d \
--name elasticsearch \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-e "http.host=0.0.0.0" \
-v /usr/local/es/es-data:/usr/share/elasticsearch/data \
-v /usr/local/es/es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.13.4
#进入容器
docker exec -it elasticsearch /bin/bash
#修改配置
vim config/elasticsearch.yml
#添加配置,重启容器
xpack.security.enabled: true
#进入容器,配置es及其组件的密码
./bin/elasticsearch-setup-passwords interactive
4. 部署 Kibana
ES 版本 a.b.c
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
--network=es-net \
-p 5601:5601 \
kibana:a.b.c
ES 版本 7.13.4
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.13.4
5. 安装 IK 分词器
ES 版本 a.b.c
1.下载对应的分词器(下载的版本要和elasticsearch对应): https://github.com/infinilabs/analysis-ik/releases/download/v7.13.4/elasticsearch-analysis-ik-a.b.c.zip
2.解压上传到服务器的/usr/share/elasticsearch/plugins目录下
ES 版本 7.13.4
1.下载对应的分词器(下载的版本要和elasticsearch对应): https://github.com/infinilabs/analysis-ik/releases/download/v7.13.4/elasticsearch-analysis-ik-7.13.4.zip
2.解压上传到服务器的/usr/share/elasticsearch/plugins目录下