当前位置: 首页 > news >正文

在 CentOS 8 上安装和部署 OpenSearch 2.17 的实战指南20240924

在 CentOS 8 上安装和部署 OpenSearch 2.17 的实战指南

引言

随着数据的快速增长,企业对高效搜索和分析工具的需求也在不断增加。OpenSearch 是由社区主导的搜索和分析引擎,它为大规模数据索引、日志分析、全文检索等场景提供了强大的支持。在这篇博客中,我将分享如何在 CentOS 8 上安装和配置 OpenSearch 2.17,确保您能够快速启动并运行该服务。

本教程涵盖从环境准备、安装 Java、下载与解压 OpenSearch、配置系统参数到将 OpenSearch 配置为系统服务的详细步骤。无论您是开发者还是运维人员,这篇文章将为您提供实用的安装指南和最佳实践。

一、准备工作

在安装 OpenSearch 之前,我们需要确保系统符合以下要求:

  • 操作系统:CentOS 8
  • 内存:至少 4GB(根据具体使用场景,建议更多)
  • Java:需要 Java 11 或更高版本

二、安装 Java

OpenSearch 依赖 Java,因此我们首先安装 OpenJDK 11。

sudo dnf install java-11-openjdk-devel

验证 Java 版本是否安装正确:

java -version

输出应类似于:

openjdk version "11.0.x" ...

三、下载 OpenSearch 2.17

从 OpenSearch 官方网站获取最新的 2.17 版本,或使用以下命令直接下载:

wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.17.0/opensearch-2.17.0-linux-x64.tar.gz

四、解压文件

下载完成后,解压 OpenSearch 文件:

tar -zxvf opensearch-2.17.0-linux-x64.tar.gz

五、配置 OpenSearch

进入 OpenSearch 安装目录,并对配置文件进行修改:

cd opensearch-2.17.0

编辑 config/opensearch.yml 文件,根据您的需求进行以下基本配置:

cluster.name: my-opensearch-cluster
node.name: node-1
network.host: 0.0.0.0

注意:在生产环境中,建议启用安全功能,如 TLS 和用户认证,以保证数据安全。

六、调整 JVM 内存

为确保 OpenSearch 能够高效运行,我们可以调整 JVM 的内存分配。编辑 config/jvm.options 文件,分配适当的内存,如 2GB:

-Xms2g
-Xmx2g

七、创建 OpenSearch 用户(可选)

出于安全考虑,我们建议为 OpenSearch 创建一个独立的用户,并确保该用户拥有相应的权限。

sudo useradd opensearch
sudo chown -R opensearch:opensearch /path/to/opensearch-2.17.0/

八、系统配置调整

8.1 文件描述符限制

编辑 /etc/security/limits.conf,为 OpenSearch 用户添加如下限制:

opensearch soft nofile 65535
opensearch hard nofile 65535
opensearch soft nproc 4096
opensearch hard nproc 4096

8.2 虚拟内存设置

为了提升系统性能,建议修改虚拟内存的设置。编辑 /etc/sysctl.conf,添加以下配置:

vm.max_map_count=262144

应用更改:

sudo sysctl -w vm.max_map_count=262144

九、配置为系统服务

为了更方便地管理 OpenSearch,我们可以将其配置为系统服务。

创建 Systemd 服务文件 /etc/systemd/system/opensearch.service

[Unit]
Description=OpenSearch Service
After=network.target[Service]
Type=simple
User=opensearch
Group=opensearch
ExecStart=/path/to/opensearch-2.17.0/bin/opensearch
Restart=on-failure
LimitNOFILE=65535
LimitNPROC=4096
TimeoutStopSec=0
KillSignal=SIGTERM
SendSIGKILL=no
SuccessExitStatus=143[Install]
WantedBy=multi-user.target

替换 /path/to/opensearch-2.17.0/ 为实际路径。

接下来加载服务配置并启动 OpenSearch:

sudo systemctl daemon-reload
sudo systemctl start opensearch
sudo systemctl enable opensearch

十、验证 OpenSearch 安装

检查 OpenSearch 是否正常启动:

sudo systemctl status opensearch

查看实时日志以监控启动过程:

sudo journalctl -u opensearch -f

使用 curl 命令验证 OpenSearch 服务是否成功运行:

curl -XGET 'http://localhost:9200'

输出应该类似于:

{"name" : "node-1","cluster_name" : "my-opensearch-cluster","cluster_uuid" : "....","version" : {"number" : "2.17.0",...},"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

十一、配置防火墙(可选)

如果需要远程访问 OpenSearch,您需要开放 9200 端口:

sudo firewall-cmd --add-port=9200/tcp --permanent
sudo firewall-cmd --reload

警告:直接暴露 9200 端口存在安全风险,建议配置 TLS 和身份认证机制。

十二、后续步骤

12.1 安全配置

在生产环境中,建议启用 TLS 来加密传输,并配置用户认证来保护集群。

12.2 插件安装

根据您的业务需求,OpenSearch 提供了多种插件扩展功能,您可以根据需求安装不同插件。

12.3 监控与备份

为了保障 OpenSearch 的稳定性,建议使用监控工具如 Prometheus 或 OpenSearch Dashboard,同时定期备份数据以避免数据丢失。

总结

在本文中,我们详细介绍了如何在 CentOS 8 上安装并配置 OpenSearch 2.17,涵盖了从环境准备、Java 安装、下载与解压 OpenSearch 到配置和验证服务的完整流程。通过这一实战指南,您不仅能够成功部署 OpenSearch,还能够通过一些最佳实践提升系统的安全性和性能。

无论是单节点还是多节点集群,这些步骤都可以帮助您快速搭建适合生产环境的 OpenSearch 系统。希望这篇文章对您的工作有所帮助!

相关文章:

在 CentOS 8 上安装和部署 OpenSearch 2.17 的实战指南20240924

在 CentOS 8 上安装和部署 OpenSearch 2.17 的实战指南 引言 随着数据的快速增长,企业对高效搜索和分析工具的需求也在不断增加。OpenSearch 是由社区主导的搜索和分析引擎,它为大规模数据索引、日志分析、全文检索等场景提供了强大的支持。在这篇博客…...

青动CRM-E售后V2.0.4

CRM售后管理系统,旨在助力企业销售售后全流程精细化、数字化管理,主要功能:客户、合同、工单、任务、报价、产品、库存、出纳、收费,适用于:服装鞋帽、化妆品、机械机电、家具装潢、建材行业、快销品、母婴用品、办公用…...

免杀对抗—C++混淆算法shellcode上线回调编译执行

前言 上次讲了python混淆免杀,今天讲一下C混淆免杀。其实都大差不差的,也都是通过各种算法对shellcod进行混淆免杀,只不过是语言从python换成c了而已。 实验环境 测试环境依旧是360、火绒、WD还有VT。 shellcode上线 下面是最基本几个sh…...

考研数据结构——C语言实现插入排序

插入排序是一种简单直观的比较排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place(原地排序)&#…...

苍穹外卖学习笔记(十三)

三. 导入商品浏览功能代码 由于user的Controller与admin的相同,记得修改RestController注释 1. 查询分类 CategoryController package com.sky.controller.user;import com.sky.entity.Category; import com.sky.result.Result; import com.sky.service.Categor…...

​如果没有pos信息,只有一些近景的照片,可以用​编辑重建大师进行建模吗?​

可以。软件在新建工程时,提供有无人机和近景的选择,选择为近景即可。 重建大师,这是一款专为超大规模实景三维数据生产设计的集群并行处理软件,支持卫星影像、航空影像、倾斜影像和激光点云多源数据输入建模,可完成超…...

智能感知,主动防御:移动云态势感知为政企安全护航

数字化时代,网络安全已成为企业持续运营和发展的重要基石。随着业务扩展,企业资产的数量急剧增加,且分布日益分散,如何全面、准确地掌握和管理资产成为众多政企单位的难题。同时,传统安全手段又难以有效应对新型、隐蔽…...

论文笔记(四十六)RobotGPT: Robot Manipulation Learning From ChatGPT

xx RobotGPT: Robot Manipulation Learning From ChatGPT 文章概括摘要I. 介绍II. 相关工作III. 方法论A. ChatGPT 提示机器人操作B. 机器人学习 IV. 实验A. 衡量标准B. 实验设置C. 模拟实验D. 真实机器人实验E. AB测试 V. 结论 文章概括 引用: article{jin2024r…...

docker - 镜像操作(拉取、查看、删除)

文章目录 1、docker search --help(用于显示 Docker 搜索命令的帮助信息)2、docker pull(拉取镜像)3、docker images (查看镜像)3.1、docker images --help(用于显示 Docker 镜像管理相关命令的帮助信息)3.…...

如何选择数据库架构

选择合适的数据库架构是一个复杂的过程,它取决于多种因素,包括应用程序的需求、数据量的大小、并发访问量、数据一致性要求、预算以及技术团队的熟悉程度等。以下是一些关键的步骤和考虑因素,帮助你选择合适的数据库架构: 1. 分析…...

Mysql高级篇(中)——锁机制

锁机制 一、概述二、分类1、读锁2、写锁⭐、FOR SHARE / FOR UPDATE(1)NOWAIT(2)SKIP LOCKED(3)NOWAIT 和 SKIP LOCKED 的比较 ⭐、 脏写3、表级锁之 S锁 / X锁(1)总结(2…...

JavaWeb图书借阅系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优…...

文档矫正算法:DocTr++

文档弯曲矫正(Document Image Rectification)的主要作用是在图像处理领域中,对由于拍摄、扫描或打印过程中产生的弯曲、扭曲文档进行校正,使其恢复为平整、易读的形态。 一. 论文和代码 论文地址:https://arxiv.org/…...

Vxe UI vue vxe-table vxe-grid 单元格与表尾单元格如何格式化数据

Vxe UI vue vxe-table vxe-grid 单元格与表尾单元格如何格式化数据 查看 github vxe-table 官网 单元格内容格式化 通过 formatter 属性自定义格式化方法 <template><div><vxe-grid v-bind"gridOptions"></vxe-grid></div> </t…...

【百日算法计划】:每日一题,见证成长(021)

题目 栈排序 编写程序&#xff0c;对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据&#xff0c;但不得将元素复制到别的数据结构&#xff08;如数组&#xff09;中。该栈支持如下操作&#xff1a;push、pop、peek 和 isEmpty。当栈为空时&#xff0c;p…...

数据恢复篇:如何恢复几年前删除的照片

您是否曾经遇到过几年前删除了一张图片并觉得需要恢复旧照片的情况&#xff1f;虽然&#xff0c;没有确定的方法可以丢失或删除的照片。但是&#xff0c;借助奇客数据恢复等恢复工具&#xff0c;可以恢复多年前永久删除的照片、视频和音频文件。 注意 – 如果旧数据被覆盖&…...

前端注释规范

1、目的和原则 提高可读性和可维护性 如无必要&#xff0c;无增注释&#xff1b;如有必要&#xff0c;尽量详尽 2、语法 单行注释&#xff1a; // 多行注释&#xff1a; /**/ 3、规范 1、注释符与注释内容之间加一个空格 2、注释行与上方代码间加一个空行 4、Javascript …...

uniapp踩坑 tabbar页面数据刷新了但视图没有更新

问题描述&#xff1a; 有个uni-data-checkbox组件&#xff0c;两个选项&#xff1a;选项1和选项2&#xff08;对应的value值分别为1和2&#xff09;&#xff0c;v-model绑定属性名为value 两个tabbar页面&#xff1a;tab1&#xff0c;tab2。 tab1页面有个逻辑是在onShow中刷新v…...

WebAssembly与WebGPU:游戏开发的新时代

文章目录 WebAssembly简介WebGPU简介Wasm WebGPU 在游戏开发中的优势创建一个简单的WebAssembly模块使用WebGPU绘制一个三角形WebAssembly 的高级特性内存管理异步加载与多线程 WebGPU 的高级特性着色器编程计算着色器 实战案例&#xff1a;创建一个简单的 2D 游戏游戏逻辑设计…...

SAP B1 认证考试习题 - 解析版(二)

前一篇&#xff1a;《SAP B1 认证考试习题 - 解析版&#xff08;一&#xff09;》 题目纯享版合集&#xff1a;《SAP B1 认证考试习题 - 纯享版》 三、采购流程 30. 下列哪个凭证在采购流程中是必须要完成的 A. 采购订单 B. 收货采购订单 C. 应付发票 D. 退货 E. 应付贷…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...