Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器
文章目录
- Docker安装部署elasticsearch
- 拉取镜像
- 创建数据卷
- 创建网络
- elasticsearch容器,启动!
- 踩坑:虚拟机磁盘扩容
- Docker安装部署Kibana
- 拉取镜像
- Kibana容器,启动!
- 安装IK分词器
- 安装方式一:直接从github上下载
- 安装方式二
- 修改版本信息
Docker安装部署elasticsearch
在我发的上一个博客里记录了如何安装7.x版本的elasticsearch,我在跟着教学学习Java Rest Client的时候发现在elastic的官网上Java Rest Client已经被标注为过时了,elastc提供了全新的Elasticsearch Java API Client,作为程序员,应该勇于去尝试新技术,因此我决定继续尝试使用elasticsearch8.x版本。
elasticsearch已经出到8.10.4,官方推荐使用8.10.2,docker镜像有8.10.2但暂时没有8.10.4,IK分词器提供了8.10.4但没有提供8.10.2。
综合考虑之下原则8.10.2(毕竟官方都没提供8.10.4的镜像,我总不会闲到另辟蹊径自己打包8.10.4版本的镜像吧),IK分词器版本问题将使用一个sao操作解决
拉取镜像
docker pull elasticsearch:8.10.2
创建数据卷
一般来说,我们不希望在elasticsearch容器停止时丢失elasticsearch中的文件,因此我们创建一个数据卷来关联elasticsearch的data文件夹。在elasticsearch的使用中我们可能会安装各种插件,因此创建了另一个数据卷来关联elasticsearch的plugins文件夹
docker volume create es-data
docker volume create es-plugins
创建网络
一般来说,我们在使用elasticsearch的时候会结合kibana一起使用,为了他们能够正常关联,我们创建一个网络来连接他们
docker net create es-net
elasticsearch容器,启动!
因为我是单机启动,所以将discovery.type设置为single-node
es-net为上一步我们创建的网络名
docker run \
-d \
--name es \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
elasticsearch:8.10.2
访问9200端口,这次你不会看到任何东西,因为8.x版本已经默认采用https了。
访问https://[yourIp]:9200,此时会显示这是一个不安全的连接,选择无视风险继续访问,此时浏览器会弹出一个窗口让你输入用户名和密码。
elastic是一个默认账户,而其密码是随机生成的。
首先我们进入elasticsearch容器中执行重置密码的命令
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
接下来新生成的密码将会打印到控制台。
将用户名和密码输入浏览器中的登录窗口。出现下面这串字符串就成功了。
{"name": "ab675a286e72","cluster_name": "docker-cluster","cluster_uuid": "ZdLfD65lQdKStAJi1yWMMQ","version": {"number": "7.17.13","build_flavor": "default","build_type": "docker","build_hash": "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13","build_date": "2023-08-31T17:33:19.958690787Z","build_snapshot": false,"lucene_version": "8.11.1","minimum_wire_compatibility_version": "6.8.0","minimum_index_compatibility_version": "6.0.0-beta1"},"tagline": "You Know, for Search"
}
踩坑:虚拟机磁盘扩容
我之前选择安装7.x版本的原因就是我执行重置密码时会显示集群状态为RED执行失败。我在查看了运行日志后发现是因为磁盘占用达到了预警线90%,只需给磁盘扩容就好了。
这里只分享图形界面的扩容方法,以ubuntu为例。
首先虚拟机关机,在虚拟机设置界面选择磁盘扩容。
开机,安装工具Gparted
apt-get install gparted
然后选择你要扩充的分区。点击左上角的扩容,如果显示无法给只读权限的分区扩容,右键查看该分区挂载在哪个路径下,使用root用户修改权限
我这是挂载在/和/var/snap/firefox/common/host-hunspell两个路径,所以输入以下命令结束。
mount -o remount -rw /
mount -o remount -rw /var/snap/firefox/common/host-hunspell
Docker安装部署Kibana
Kibana 是为 Elasticsearch设计的开源分析和可视化平台
拉取镜像
docker pull kibana:8.10.2
Kibana容器,启动!
ELASTICSEARCH_HOSTS环境变量为elasticsearch服务的地址,其中http://es:9200中的es是我们运行elasticsearch容器时起的别名
es-net为我们在之前创建的网络的名称
docker run \
-d \
--name kibana \
--net es-net \
-p 5601:5601 \
kibana:8.10.2
访问5601端口,会要求你输入elasticsearch的令牌
进入elasticsearch容器获取kibana的令牌
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
接下来会要求你输入六位数的kibana验证码,进入kibana容器获取验证码
docker exec -it kibana bin/kibana-verification-code
完成以上两步之后你只需要输入elasticsearch的用户名和密码就能正常使用kibana了
安装IK分词器
IK分词器没有8.10.2版本,我们先下载8.10.4版本,按之前的步骤来。
安装方式一:直接从github上下载
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip
安装方式二
之前我们将es-plugins数据卷挂载到了es容器内的plugins文件夹。
我们先使用魔法从github上下载
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip
然后将压缩包解压到数据卷对应的位置,然后重启elasticsearch容器即可。
修改版本信息
打开IK分词器所在的位置,打开 plugin-descriptor.properties 文件,将version和elasticsearch.version的值从8.10.4修改为8.10.2,重启容器完成。
相关文章:

Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器
文章目录 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器,启动!踩坑:虚拟机磁盘扩容 Docker安装部署Kibana拉取镜像Kibana容器,启动! 安装IK分词器安装方式一:直接从github上下载…...

折纸达珠峰高度(forwhile循环)
对折0.1mm厚度的纸张多少次,高度可达珠峰高度8848180mm。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅…...
探索网络攻防技术:自学之道
在当今数字化时代,网络攻防技术的重要性日益凸显。无论是个人用户还是企业组织,都需要具备一定的网络安全意识和基本技能来应对日益复杂的网络威胁。自学网络攻防技术成为许多人的选择,今天我们将探讨如何高效、有序地自学网络攻防技术。 如果…...

图像二值化阈值调整——cv2.threshold方法
二值化阈值调整:调整是指在进行图像二值化处理时,调整阈值的过程。阈值决定了将图像中的像素分为黑色和白色的界限,大于阈值的像素被设置为白色,小于等于阈值的像素被设置为黑色。 方法一: 取阈值为 127,…...
【C++代码】背包问题,完全背包,多重背包,打家劫舍,动态规划--代码随想录
爬楼梯(plus) 一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢? 1阶,2阶,… m阶就是物品,楼顶就是背包。每一阶可以重复使用,例如…...
阿里云创始人王坚:云计算和GPT的关系,就是电和电机的关系
10月31日,在2023云栖大会,中国工程院院士、阿里云创始人王坚以《云计算的第三次浪潮》为主题发表演讲,他认为人工智能和云计算的结合,带来云计算的第三次浪潮,它不会在一年、两年完成,它可能会给我们十年、…...

python爬取豆瓣电影Top250数据
本次爬虫案例使用Python语言编写,使用了requests库进行网页请求,使用了BeautifulSoup库进行网页解析,使用了openpyxl库进行数据的保存。 案例中的爬虫目标是豆瓣电影Top250,通过循环访问不同页面进行数据的爬取。在每个页面上&am…...

关键路径及关键路径算法[C/C++]
文章目录 关键路径引例AOE网关键路径与关键活动关键路径算法引例与原理关键路径算法的实现边的存储结构代码实现运行示例 关键路径 关于拓扑排序的内容见拓扑排序详解 引例 通过拓扑排序我们可以解决一个工程是否可以顺序进行的问题,拓扑排序把一个工程分成了若干…...
nginx http 跳转到https
改 Nginx 配置文件 在您安装了 SSL 证书之后,您需要修改 Nginx 的配置文件以启用 HTTPS 和 HTTP 自动跳转 HTTPS。 打开 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf),找到您的网站配置块。在该配置块中添加以下内容&#x…...

可靠的互联网兼职平台,平常可以做副业充实生活
在互联网时代,越来越多的人开始通过网络来寻找兼职副业的机会,能够更灵活地安排自己的时间,实现自己的收入增值。那么找到一个正规可靠的线上兼职平台就是一个比较重要的事情,这里分享几个正规靠谱的线上兼职副业平台,…...

云安全—K8s APi Server 6443 攻击面
0x00 前言 在未授权的一文中,详细描述了k8s api中的8080端口未授权的问题,那么本篇主要来说6443端口的利用。 0x01 API连接攻击面 1.匿名用户访问 匿名开放方式:kubectl create clusterrolebinding cluster-system-anonymous --clusterro…...

【案例实战】NodeJS+Vue3+MySQL实现列表查询功能
这篇文章,给大家带来一个列表查询的功能,从前端到后端的一个综合案例实战。 采用vue3作为前端开发,nodejs作为后端开发。 首先我们先来看一下完成的页面效果。点击分页,可以切换到上一页、下一页。搜索框可以进行模糊查询。 后端…...

Google play开发者账号被封的几种常见原因及相关解决思路
在Google paly上,每天都有大量的应用被成功发布,同时也有很多开发者账号被封禁。特别是在今年的十月份之前,谷歌的"封号潮"给很多开发者带来了沉重的打击。不过,令人欣慰的是,自十月份之后,情况逐…...

深入理解计算机系统CS213学习笔记
Lecture 01 1. 计算机表示数字 int 整数运算可能会出现错误,超过32位时会出现溢出。 float 浮点数不适用结合律,因为浮点数表示的精度有限。 根其原因,是用有限的位数表示无限的数字空间。 2.利用分层的存储系统,使程序运行更…...

【设计模式】第8节:结构型模式之“适配器模式”
一、简介 适配器模式是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式角色: 请求者client:调用服务的角色目标Target:定义了Client要使用的功…...

Stable Diffusion WebUI扩展openpose-editor如何使用
先上地址: GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webuiOpenpose Editor for AUTOMATIC1111s stable-diffusion-webui - GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webu…...

企业网络带宽使用情况检查技巧
想要提高网络性能的企业通常会考虑限制对占用带宽的应用程序(如社交媒体和视频流应用程序)的访问,但对于那些真正需要获得高效网络的人来说,这还不够,您需要定期跟踪带宽使用情况。 虽然有许多工具可以帮助您检查网络…...

C/C++笔试易错与高频题型图解知识点(三)——数据结构部分(持续更新中)
目录 1. 排序 1.1 冒泡排序的改进 2. 二叉树 2.1 二叉树的性质 3. 栈 & 队列 3.1 循环队列 3.2 链式队列 4. 平衡二叉搜索树——AVL树、红黑树 5 优先级队列(堆) 1. 排序 1.1 冒泡排序的改进 下面的排序方法中,关键字比较次数与记录的初…...

Intel oneAPI笔记--oneAPI简介、SYCL编程简介
oneAPI简介 Intel oneAPI是Intel提供的统一编程模型和软件开发框架。 它旨在简化可充分利用英特尔各种硬件架构(包括 CPU、GPU 和 FPGA)的应用程序的开发 oneAPI一个重要的特性是开放性,支持多种类型的架构和不同的硬件供应商,是…...

Spring IOC - ConfigurationClassPostProcessor源码解析
上文提到Spring在Bean扫描过程中,会手动将5个Processor类注册到beanDefinitionMap中,其中ConfigurationClassPostProcessor就是本文将要讲解的内容,该类会在refresh()方法中通过调用invokeBeanFactoryPosstProcessors(beanFactory)被调用。 5…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...
React核心概念:State是什么?如何用useState管理组件自己的数据?
系列回顾: 在上一篇《React入门第一步》中,我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目,并修改了App.jsx组件,让页面显示出我们想要的文字。但是,那个页面是“死”的,它只是静态…...