栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

Docker搭建Elasticsearch服务及Kibana可视化界面与IK分词插件
  • ① Elasticsearch
    • 1.Elaticsearch下载
    • 2.创建挂载目录
    • 3.启动容器
    • 4.测试
  • ② 可视化Kibana
    • 1.Kibana下载
    • 2.启动容器
    • 3.测试
  • ③ 分词器elasticsearch-analysis-ik
    • 1.下载ES-IK
    • 2.安装ES-IK
    • 3.测试

① 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" >> 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搜索引擎"
}

得到以下结果即表示安装成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号