我们要安装的内容包含2部分:
-
elasticsearch:存储、搜索和运算
-
kibana:图形化展示,它还提供了一个开发控制台(DevTools),在其中对Elasticsearch的Restful的API接口提供了语法提示
这里我们采用的是elasticsearch的7.12.1版本,由于8以上版本的JavaAPI变化很大,在企业中应用并不广泛,企业中应用较多的还是8以下的版本。
如果拉取镜像困难,可以直接导入百度网盘提供的镜像tar包
1.我们将下载好的es.tar和kibana.tar放入root文件夹下 如下图:
2. 然后使用docker load加载镜像,执行以下命令
docker load -i es.tar
docker load -i kibana.tar
3. 为了我们容器直接可以相互访问,我们需要创建一个网络,执行以下命令
docker network create 网络名 比如: docker network create ddf
4. 通过下面的Docker命令即可安装单机版本的elasticsearch
注意: 加入的网络需要填写刚刚创建的网络名
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network 创建的网路名 \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1
-v es-data:/usr/share/elasticsearch/data -----挂载es的数据存储目录
-v es-plugins:/usr/share/elasticsearch/plugins ------挂载es的插件目录,给es安装插件可以直接在数据卷中安装
--privileged ----- 授权系统权限
-p 9200:9200 ----- http端口
-p 9300:9300 ----- 集群端口
安装完成后,访问9200端口,即可看到响应的Elasticsearch服务的基本信息:
需要注意的是,我们Windows访问需要放行9200端口号,为了后续的简便操作,我这里就关闭了linux的防火墙,执行以下命令
systemctl stop firewalld
5.安装Kibana
通过下面的Docker命令,即可部署Kibana:
注意: 加入的网络需要填写刚刚创建的网络名
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=创建的网路名 \
-p 5601:5601 \
kibana:7.12.1
安装完成后,直接访问5601端口,即可看到控制台页面:
选择Explore on my own
之后,进入主页面:
然后选中Dev tools
,进入开发工具页面:
6. 安装ik分词器
Elasticsearch的关键就是倒排索引,而倒排索引依赖于对文档内容的分词,而分词则需要高效、精准的分词算法,IK分词器就是这样一个中文分词算法。
方案一:在线安装
运行一个命令即可:
docker exec -it es ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
然后重启es容器:
docker restart es
方案二:离线安装
如果网速较差,也可以选择离线安装。
首先,查看之前安装的Elasticsearch容器的plugins数据卷目录:
docker volume inspect es-plugins
结果如下:
[
{
"CreatedAt": "2024-11-06T10:06:34+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
"Name": "es-plugins",
"Options": null,
"Scope": "local"
}
]
可以看到elasticsearch的插件挂载到了/var/lib/docker/volumes/es-plugins/_data
这个目录。我们需要把IK分词器上传至这个目录。
找到在百度网盘下载好的ik分词器插件:
然后上传至虚拟机的/var/lib/docker/volumes/es-plugins/_data
这个目录:
执行以下命令如图:
然后上传至虚拟机的/var/lib/docker/volumes/es-plugins/_data
这个目录:
然后进行解压,执行以下命令
unzip elasticsearch-analysis-ik-7.12.1.zip -d ik
注意:解压完后会出现一个ik文件夹,这时我们需要将zip压缩包删除
最后,重启es容器:
docker restart es
后续我们想要使用只需要启动容器就行
我们可以通过 docker ps -a 来查看运行状态和容器名
我们看到我们的容器名是es和kibana
后续只需要执行
docker start es
docker start kibana即可