在 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)
题目 栈排序 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,p…...
数据恢复篇:如何恢复几年前删除的照片
您是否曾经遇到过几年前删除了一张图片并觉得需要恢复旧照片的情况?虽然,没有确定的方法可以丢失或删除的照片。但是,借助奇客数据恢复等恢复工具,可以恢复多年前永久删除的照片、视频和音频文件。 注意 – 如果旧数据被覆盖&…...
前端注释规范
1、目的和原则 提高可读性和可维护性 如无必要,无增注释;如有必要,尽量详尽 2、语法 单行注释: // 多行注释: /**/ 3、规范 1、注释符与注释内容之间加一个空格 2、注释行与上方代码间加一个空行 4、Javascript …...
uniapp踩坑 tabbar页面数据刷新了但视图没有更新
问题描述: 有个uni-data-checkbox组件,两个选项:选项1和选项2(对应的value值分别为1和2),v-model绑定属性名为value 两个tabbar页面:tab1,tab2。 tab1页面有个逻辑是在onShow中刷新v…...
WebAssembly与WebGPU:游戏开发的新时代
文章目录 WebAssembly简介WebGPU简介Wasm WebGPU 在游戏开发中的优势创建一个简单的WebAssembly模块使用WebGPU绘制一个三角形WebAssembly 的高级特性内存管理异步加载与多线程 WebGPU 的高级特性着色器编程计算着色器 实战案例:创建一个简单的 2D 游戏游戏逻辑设计…...
SAP B1 认证考试习题 - 解析版(二)
前一篇:《SAP B1 认证考试习题 - 解析版(一)》 题目纯享版合集:《SAP B1 认证考试习题 - 纯享版》 三、采购流程 30. 下列哪个凭证在采购流程中是必须要完成的 A. 采购订单 B. 收货采购订单 C. 应付发票 D. 退货 E. 应付贷…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
