Docker搭建Elasticsearch服务及Kibana可视化界面与IK分词插件

本文详细介绍了如何使用Docker搭建Elasticsearch服务,包括下载、配置挂载目录、启动容器及测试。同时,讲解了Kibana的下载与启动,以及如何配置Kibana连接Elasticsearch。最后,针对中文分词需求,演示了安装和测试IK分词插件的过程,确保Elasticsearch能有效处理中文搜索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

① Elasticsearch

1.Elaticsearch下载

docker下载命令:

docker pull elasticsearch:7.14.2

2.创建挂载目录

我们需要将Elasticsearch里的三个文件夹挂载在本机上 方便管理

  1. /usr/share/elasticsearch/config/elasticsearch.yml 配置文件
  2. /usr/share/elasticsearch/data 数据目录
  3. /usr/share/elasticsearch/plugins 插件目录

首先在本机创建挂载目录

mkdir -p /usr/etc/elasticsearch/config /usr/etc/elasticsearch/data /usr/etc/elasticsearch/plugins
chmod -R 777 /usr/etc/elasticsearch
-p:当父目录不存在时 一并创建
因为数据挂载需要权限 所以chmod命令把elasticsearch目录及其子目录权限改为所有用户与组 可读可写可执行

创建配置文件elasticsearch.yml并设置elasticsearch服务访问权限

echo "http.host: 0.0.0.0" >> /usr/etc/elasticsearch/config/elasticsearch.yml

这样写可以直接创建出elasticsearch.yml并把内容追加到文件中
▲:注意 冒号后面要有一个空格 否则报错:
Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];

3.启动容器

① 如果启动时报错:

java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

请检查本机挂载目录/usr/etc/elasticsearch目录及其子目录的权限是否开启
请保证elasticsearch及其子目录权限如下所示
在这里插入图片描述
并且有些朋友权限也设置了但还是报“AccessDeniedException”异常 请确认你的启动命令中有使用--privileged=true命令

② 若报错

java.lang.OutOfMemoryError: Java heap space

请调整Elasticsearch启动运行内存大小

启动命令如下:

docker run --name elasticsearch7.14.2 --privileged=true \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx256m" \
-v /usr/etc/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/etc/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/etc/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.14.2
命令解释
–privileged=true给docker容器内部赋予真正的root权限
-p 9200:9200指定端口映射 9200是elasticsearch与外部交互的端口 9300是集群间交互的端口
-e “discovery.type=single-node”指定elasticsearch单机启动
ES_JAVA_OPTS="-Xms64m -Xmx128m"指定elasticsearch运行使用内存大小 测试时请按实际设置 否则可能导致无法启动elasticsearch
-v …将主机文件目录挂载到docker容器内部 方便管理
-d指定docker容器后台运行

4.测试

浏览器中输入

虚拟机IP:9200

可以看到Elasticsearch的信息即启动成功

② 可视化Kibana

请在启动完成Elasticsearch后启动Kibana

1.Kibana下载

docker pull kibana:7.14.2
ps: 请注意,kibana安装版本请与Elasticsearch一致

2.启动容器

启动命令如下:

docker run --name kibana7.14.2 \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://192.168.32.99:9200" \
-d kibana:7.14.2
命令解释
-e “ELASTICSEARCH_HOSTS=http://192.168.32.99:9200”指定Elasticsearch服务启动地址 请修改为实际的服务地址,请注意 一定要添加http://前缀 否则启动失败

3.测试

在浏览器输入以下地址:

虚拟机IP:5601

③ 分词器elasticsearch-analysis-ik

简单说明一下:由于Elasticsearch默认分词器无法匹配中文词组,会导致在分词时将中文字符串拆分成一个个的字,而没有词组的概念,所以安装中文分析分词器ES-IK

1.下载ES-IK

请到ES-IK GITHUB仓库下载压缩包
地址:EK-IK GITHUB下载地址

2.安装ES-IK

  • 通过工具XFTP上传ES-IK压缩包到Elasticsearch的挂载插件目录/usr/share/elasticsearch/plugins中
  • 解压ES-IK压缩包并删除
unzip -d ./ik elasticsearch-analysis-ik-7.14.2.zip 
将压缩包解压到当前目录下的ik目录中
rm elasticsearch-analysis-ik-7.14.2.zip 
删除ES-IK 压缩包
  • 重启Elasticsearch服务使插件生效
docker restart elasticsearch7.14.2

3.测试

在Kibana可视化界面 DevTools模块中使用命令如下:

GET /_analyze
{
  "analyzer": "ik_smart",
  "text": "Elasticsearch搜索引擎"
}

得到以下结果即表示安装成功
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值