使用docker-compose部署搜索引擎ElasticSearch6.8.10

背景

Elasticsearch 是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它被广泛用于实时数据搜索、日志分析、全文检索等应用场景。 Elasticsearch 支持高效的全文搜索,并提供了强大的聚合功能,可以处理大规模的数据集并进行快速搜索和分析。 Elasticsearch 可用于构建各种类型的应用程序,例如电商网站的商品搜索、新闻网站的文章搜索、企业内部的日志分析和监控等。

本文通过 Docker 容器化方式并基于一个 Elasticsearch 旧版本 6.8.10 来安装,新版的 ElasticSearch 8.0的安装操作可参考:将最新版的ElasticSearch8与Kibana8在CentOS7上跑起来。另外,2024年11月的软考系统架构设计师考试在案例题中考察了 ElasticSearch 分布式全文搜索中间件,这个考察相对有深度,不仅仅是简单的使用,而是与分词相关的内容。

系统环境

[root@ops ~]# uname -a
Linux ops 5.10.0-182.0.0.95.oe2203sp3.x86_64 #1 SMP Sat Dec 30 13:10:36 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@ops ~]# cat /proc/version
Linux version 5.10.0-182.0.0.95.oe2203sp3.x86_64 (root@dc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Sat Dec 30 13:10:36 CST 2023

配置服务

  • docker-compose.yml
  my-elasticsearch:image: elasticsearch:6.8.10container_name: my-elasticsearchenvironment:ES_JAVA_OPTS: -Djava.net.preferIPv4Stack=true -Xms1g -Xmx1gtransport.host: 0.0.0.0discovery.zen.minimum_master_nodes: 1discovery.zen.ping.unicast.hosts: elasticsearchTZ: Asia/Shanghaivolumes:- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- ./elasticsearch/data:/usr/share/elasticsearch/data- ./elasticsearch/logs:/usr/share/elasticsearch/logs- ./elasticsearch/plugins:/usr/share/elasticsearch/pluginsports:- "9200:9200"- "9300:9300"
  • elasticsearch.yml
# 设置Elasticsearch节点的发现类型为单节点
discovery.type: "single-node"
# 尝试锁定内存,以防止被交换到磁盘
bootstrap.memory_lock: true
# Elasticsearch在所有可用网络接口上侦听,可以从任何地址访问
network.host: 0.0.0.0
# Elasticsearch HTTP API的监听端口
http.port: 9200
# Elasticsearch节点之间通信的TCP端口
transport.tcp.port: 9300
# Elasticsearch日志文件的输出路径
path.logs: /usr/share/elasticsearch/logs
# 启用跨域资源共享(CORS)支持
http.cors.enabled: true
# 允许来自任何源的跨域请求
http.cors.allow-origin: "*"
# 启用Elasticsearch安全性功能
xpack.security.enabled: true
# 允许包含 Authorization 头的跨域请求
http.cors.allow-headers: Authorization
# 启用节点之间传输层安全性(TLS/SSL)
xpack.security.transport.ssl.enabled: true
# 启用监控收集
xpack.monitoring.collection.enabled: true

部署服务

在启动之前,先创建好对应的目录,并给予执行权限

mkdir -p /opt/docker/elasticsearch/config
mkdir -p /opt/docker/elasticsearch/data
mkdir -p /opt/docker/elasticsearch/logs
mkdir -p /opt/docker/elasticsearch/pluginschown -R root:root elasticsearch
chmod 777 -R elasticsearch

docker-compose -f docker-compose.yml up -d my-elasticsearch

修改密码

安全起见,所有的基础服务都开启认证并配置密码,进入容器,通过以下命令设置密码。

# 进入容器
docker exec -it my-elasticsearch /bin/bash
# 设置密码
elasticsearch-setup-passwords interactive

交互式设置密码,具体执行结果如下。

[root@svc docker]# docker exec -it my-elasticsearch /bin/bash
[root@0a204f9b5762 elasticsearch]# elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]yEnter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana]: 
Reenter password for [kibana]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

验证服务

在浏览器中验证 Elasticsearch 6.8.10 的安装情况,由于前面我们开启了 Elasticsearch 的认证,因此首先需要在浏览器弹窗框( HTTPBasic )里输入认证信息。

2024-12-01-ElasticSearch.jpg

  • 查看节点健康状态:http://192.168.44.168:9200/_cat/health?v
  • 查看节点索引:http://192.168.44.168:9200/_cat/indices?v
  • 查看索引内容:http://192.168.44.168:9200/索引名称/_search?pretty

离线操作

如果是离线环境部署,则需要先在有网络的环境下拉取镜像,然后通过 docker save elasticsearch:6.8.10 -o elasticsearch.tar 完成镜像导出,最后在目标主机上离线加载上一步导出的镜像。

# 离线导入镜像
[root@svc opt]# docker load -i elasticsearch.tar 
edf3aa290fb3: Loading layer [==================================================>]  211.1MB/211.1MB
066109abe451: Loading layer [==================================================>]  359.6MB/359.6MB
83b86c34afe7: Loading layer [==================================================>]  73.86MB/73.86MB
6e851073edad: Loading layer [==================================================>]  379.4kB/379.4kB
cb11836a653d: Loading layer [==================================================>]  241.1MB/241.1MB
d40f4cc2180f: Loading layer [==================================================>]   7.68kB/7.68kB
5e35467de158: Loading layer [==================================================>]  9.728kB/9.728kB
Loaded image: elasticsearch:6.8.10# 查看已有镜像
[root@svc opt]# docker images
REPOSITORY             TAG         IMAGE ID       CREATED         SIZE
redis                  6-alpine    4100b5bd1743   7 weeks ago     35.5MB
nginx                  1.25.3      a8758716bb6a   13 months ago   187MB
openjdk                8-jre       0c14a0e20aa3   2 years ago     274MB
elasticsearch          6.8.10      ffa00077159c   4 years ago     877MB

如果需要重新构建、更新服务,可通过以下命令实现。

docker stop my-elasticsearch
docker rm my-elasticsearch
docker-compose -f docker-compose.yml up -d my-elasticsearch

小总结

上述内容介绍了如何在 OpenEuler 系统上使用 Docker 容器化方式部署 ElasticSearch 6.8.10 版本。文章涵盖了完整的部署流程,包括环境配置、 docker-composeelasticsearch 的配置文件编写、目录权限设置、密码安全配置、服务验证方法以及离线部署操作等内容。同时,还附上了之前撰写的一系列从入门到集群部署的 ElasticSearch 相关文章链接,为大家提供一个完整的学习路径。

附:以前写的关于 ElasticSearch 的内容,包含 ElasticSearch8.0 分布式搜索引擎集群及其高可用测试。

  • ElasticSearch入门(一)单节点初体验
  • ElasticSearch入门(二)批量导入数据(Postman与Kibana)
  • ElasticSearch入门(三)Logstash实现MySQL数据同步至ElasticSearch
  • ElasticSearch入门(四)常用插件:Head插件与ik分词器
  • ElasticSearch入门(五)SpringBoot2.3.0集成ElasticSearch7.5.2-HighLevelClient
  • ElasticSearch入门(六)SpringBoot2.3.0集成ElasticSearch7.5.2-SpringData
  • ElasticSearch入门(七)搭建ElasticSearch集群
  • 在华为鲲鹏openEuler20.03系统上安装ElasticSearch
  • 将最新版的ElasticSearch8与Kibana8在CentOS7上跑起来
  • 全栈开发之ElasticSearch8.0分布式搜索引擎集群及其高可用测试

Reference

  • https://www.cnblogs.com/handsometaoa/p/17988216

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482312.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode—74. 搜索二维矩阵(中等)

仅供个人学习使用 题目描述: 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true…

Cento7 紧急模式无法正常启动,修复home挂载问题

Centos 7 开机失败进入紧急模式[emergency mode],解决方案。 通过journalctl -xb查看启动日志,定位发现/home目录无法正常挂载。 退出启动日志检查,进行修复。 进行问题修复 # 修复挂载问题 mkdir /home mount /dev/mapper/centos-home /ho…

Matlab mex- setup报错—错误使用 mex,未检测到支持的编译器...

错误日志: 在使用mex编译时报错提示:错误使用 mex,未检测到支持的编译器。您可以安装免费提供的 MinGW-w64 C/C 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问https://www.mathworks.com/support/compile…

【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现

代码主要实现了以下功能: 二叉树相关数据结构定义 定义了二叉树节点结构体 BiTNode,包含节点数据值(字符类型)以及指向左右子树的指针。 定义了顺序栈结构体 SqStack,用于存储二叉树节点指针,实现非递归遍历…

Android -- 简易音乐播放器

Android – 简易音乐播放器 播放器功能:* 1. 播放模式:单曲、列表循环、列表随机;* 2. 后台播放(单例模式);* 3. 多位置同步状态回调;处理模块:* 1. 提取文件信息:音频文…

Python语法基础(四)

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 高阶函数之map 高阶函数就是说,A函数作为B函数的参数,B函数就是高阶函数 map:映射 map(func,iterable) 这个是map的基本语法,…

大模型时代的人工智能基础与实践——基于OmniForce的应用开发教程

《大模型时代的人工智能基础与实践——基于 OmniForce 的应用开发教程》由京东探索研究院及京东教育联袂撰写,图文并茂地介绍传统人工智能和新一代人工智能(基于大模型的通用人工智能技术),展示人工智能广阔的应用场景。同时&…

ESP8266 (ESP-01S)烧录固件 和 了解与单片机通信必需的AT指令

ESP8266(ESP-01s)烧录固件 工具: 需要安装的原装出厂固件库: ESP8266 --接线-- VCC 3.3(外接开发板) GND GND(外接开发板) IO0 GND(外接…

【操作文档】mysql分区操作步骤.docx

1、建立分区表 执行 tb_intercept_notice表-重建-添加分区.sql 文件; DROP TABLE IF EXISTS tb_intercept_notice_20241101_new; CREATE TABLE tb_intercept_notice_20241101_new (id char(32) NOT NULL COMMENT id,number varchar(30) NOT NULL COMMENT 号码,cre…

S4 UPA of AA :新资产会计概览

通用并行会计(Universal Parallel Accounting)可以支持每个独立的分类账与其他模块集成,UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估,并…

ScribblePrompt 医学图像分割工具,三种标注方式助力图像处理

ScribblePrompt 的主要目标是简化医学图像的分割过程,这在肿瘤检测、器官轮廓描绘等应用中至关重要。相比依赖大量人工标注数据,该工具允许用户通过少量输入(例如简单的涂鸦或点位)来引导模型优化分割结果。这种方式减少了医学专家…

jdk各个版本介绍

Java Development Kit(JDK)是Java平台的核心组件,它包含了Java编程语言、Java虚拟机(JVM)、Java类库以及用于编译、调试和运行Java应用程序的工具。 JDK 1.0-1.4(经典时代) • JDK 1.0&#xff…

【Python爬虫五十个小案例】爬取猫眼电影Top100

博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 🐍引言 猫眼电影是国内知名的电影票务与资讯平台,其中Top100榜单是影迷和电影产业观察者关注的重点。通过爬取猫眼电影Top10…

Doge东哥wordpress主题

Doge东哥wordpress主题是一款专为中小型企业设计的WordPress外贸网站模板,它以其现代、专业且用户友好的界面,为企业提供了一个展示产品和服务的理想平台。以下是对该模板的详细描述: 首页设计概览 首页的设计简洁而不失大气,顶…

【力扣】541.反转字符串2

问题描述 思路解析 每当字符达到2*k的时候,判断,同时若剩余字符>k,只对前k个进行判断(这是重点)因为字符串是不可变变量,所以将其转化为字符串数组,最后才将结果重新转变为字符串 字符串->字符数组 …

C++练级计划-> 《IO流》iostream fstream sstream详解

如果是想全部过一遍就看完,如果想具体的了解某一个请点目录。因为有三种流的使用可能内容多 目录 流是什么? CIO流(iostream) io流的注意事项 cin和cout为什么能直接识别出类型和数据 fstream fstream的使用方法&#xff…

EDA软件研发的DevOps平台

1:什么是DevOps DevOps是十几年前,在互联网比较火的词,实际上就是ci/cd平台的另外一种说法,核心是说打破研发,测试,运维的边界,能够将整个产品开发的流程快速循环起来,随时可发版&a…

自动化是语法,智能化是语义与语用

自动化与智能化可以从语言学的角度来进行类比和探讨。 1. 自动化是语法 自动化可以类比为“语法”的部分,因为它关注的是操作过程的规则、结构和执行方式。语法是语言中关于词汇、句子结构和规则的系统,它提供了语言运作的框架和规范。类似地&#xff0c…

Spring源码-Bean的生命周期和模板方法

Bean的生命周期 之前我们提到过SpringApplication的run方法不光可以启动程序,还会返回一个容器,为了演示Bean的从创建到销毁的整个阶段,我们会关闭掉容器。 接下来我们来看想要加入到容器当中的类,映入眼帘的是这几个方法和其注解…

Mysql数据库基础篇笔记

目录 sql语句 DDL——数据库定义语言(定义库,表,字段) 数据库操作: 表操作: DML 增删改语句 DQL 语法编写顺序: 条件查询 DCL 用户管理: 权限管理: 函数 常见字符串内置函…