【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置(单机)

Elasticsearch系列文章目录

  1. 【Elasticsearch 基础入门】一文带你了解Elasticsearch!!!
  2. 【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置(单机)

目录

  • Elasticsearch系列文章目录
  • 前言
  • 单机模式
    • 1. 安装 Java 依赖
    • 2. 下载 Elasticsearch
    • 3. 配置 Elasticsearch
    • 4. 启动 Elasticsearch
    • 5.启动报错 java.lang.RuntimeException: can not run elasticsearch as root
      • 报错日志如下
      • 解决方式
    • 6. 后台启动 Elasticsearch
    • 7.验证是否安装成功
    • 8.配置防火墙(如需远程访问)
    • 9.关闭elasticsearch
    • 10.停止后台进程
    • 11.设置开机自启动
      • 创建 systemd 服务文件
      • 重新加载 systemd 配置
      • 启动 Elasticsearch 服务
      • 启用服务开机自启动
      • 停止 Elasticsearch 服务
      • 查询 Elasticsearch 启动状态
  • 总结


前言

要理解 Elasticsearch,最好的方式就是去运行它,让我们开始吧!!!
我们将介绍如何在 CentOS 7 上安装和配置 Elasticsearch 7.17供开发和测试使用的单机模式。

单机模式

1. 安装 Java 依赖

Elasticsearch 是用 Java 编写的,因此需要 Java 环境。首先安装 JDK(版本 8 或更高版本)。
具体安装过程略
查看当前安装的java 版本

java -version

返回信息如下

java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)

2. 下载 Elasticsearch

前往 Elasticsearch 官网 下载最新版本的 Elasticsearch。

选择适合你系统的版本(Linux、Windows 等)。
下载并解压到合适的目录。例如,在 CentOS 上:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.27-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.17.27-linux-x86_64.tar.gz
cd elasticsearch-7.17.27/ 

3. 配置 Elasticsearch

对于单机模式,你可以稍微修改一下 elasticsearch.yml 配置文件,来指定网络地址和集群名称。

配置文件路径:config/elasticsearch.yml

vim config/elasticsearch.yml

修改以下项:

network.host: 0.0.0.0  # 默认是 127.0.0.1,只允许本地连接,如果希望 Elasticsearch 可供其他机器访问,可以改为 0.0.0.0 或者具体的 IP 地址,允许远程访问
cluster.name: my-cluster  # 集群的名字,默认为 elasticsearch。可以根据需要修改。
node.name: node-1  # 设置节点名称。默认为随机生成的名称,可以自定义。
cluster.initial_master_nodes: ["node-1"] # 在首次启动时指定初始主节点,用于集群发现。

在这里插入图片描述

4. 启动 Elasticsearch

启动 Elasticsearch 服务:

./bin/elasticsearch

5.启动报错 java.lang.RuntimeException: can not run elasticsearch as root

报错日志如下

[2025-01-26T08:25:59,843][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.27.jar:7.17.27]...

解决方式

错误提示表明 Elasticsearch 不能以 root 用户身份启动。为了安全性,Elasticsearch 不允许以 root 用户运行。你需要创建一个非 root 用户来运行 Elasticsearch。

  1. 创建一个新的用户: 你可以使用以下命令创建一个非 root 用户(例如:elasticsearch):
sudo useradd elasticsearch
sudo passwd elasticsearch  # 设置密码
  1. 更改 Elasticsearch 文件夹的拥有者: 需要将 Elasticsearch 的安装目录以及数据目录的权限更改为新用户。假设你安装 Elasticsearch 的路径为 /home/elasticsearch/elasticsearch-7.17.27,请执行以下命令:
sudo chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.27
sudo chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.27/data
sudo chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.27/logs
  1. 以新用户身份启动 Elasticsearch: 切换到新创建的 elasticsearch 用户:
su - elasticsearch
  1. 然后,尝试启动 Elasticsearch:
./bin/elasticsearch

6. 后台启动 Elasticsearch

如果启动 Elasticsearch 服务成功,可以加上-d参数来后台启动:

./bin/elasticsearch -d

7.验证是否安装成功

curl http://localhost:9200

返回信息如下表示成功

{"name" : "node-1","cluster_name" : "my-cluster","cluster_uuid" : "lQQ3Qxd5SlmYpq20mq_YGA","version" : {"number" : "7.17.27","build_flavor" : "default","build_type" : "tar","build_hash" : "0f88dde84795b30ca0d2c0c4796643ec5938aeb5","build_date" : "2025-01-09T14:09:01.578835424Z","build_snapshot" : false,"lucene_version" : "8.11.3","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

浏览器访问 http://localhost:9200
在这里插入图片描述

8.配置防火墙(如需远程访问)

如果你打算让其他机器也能访问 Elasticsearch,记得在防火墙中打开 9200 端口:

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

9.关闭elasticsearch

查看es进程

ps aux | grep elasticsearch

显示如下

elastic+ 23343  3.3 35.4 5741876 1376504 pts/0 Sl   08:44   0:23 /usr/java/jdk1.8.0-x64/bin/java  -cp /home/elasticsearch/elasticsearch-7.17.27/lib/* org.elasticsearch.bootstrap.Elasticsearch -d

10.停止后台进程

kill pid 停止 Elasticsearch

kill 23343

11.设置开机自启动

创建 systemd 服务文件

创建一个名为 elasticsearch.service 的服务文件,通常放置在 /etc/systemd/system/ 目录下。可以使用以下命令创建并编辑该文件:

sudo vim /etc/systemd/system/elasticsearch.service

在文件中添加以下内容:

[Unit]
Description=Elasticsearch
Documentation=http://www.elastic.co
After=network.target[Service]
Type=simple
User=elasticsearch
ExecStart=/home/elasticsearch/elasticsearch-7.17.27/bin/elasticsearch
Restart=on-failure
LimitMEMLOCK=infinity
LimitNOFILE=65535
LimitNPROC=4096
TimeoutStartSec=75
TimeoutStopSec=75
WorkingDirectory=/home/elasticsearch/elasticsearch-7.17.27[Install]
WantedBy=multi-user.target

重新加载 systemd 配置

创建完服务文件后,需要重新加载 systemd 的配置以识别新服务:

sudo systemctl daemon-reload

启动 Elasticsearch 服务

现在,你应该能够使用 systemctl 来管理 Elasticsearch 服务了。首先启动服务:

sudo systemctl start elasticsearch

启用服务开机自启动

sudo systemctl enable elasticsearch

停止 Elasticsearch 服务

sudo systemctl stop elasticsearch

查询 Elasticsearch 启动状态

sudo systemctl status elasticsearch

在这里插入图片描述

总结

通过本教程,你已经学习了如何在 CentOS 7 上安装和配置 Elasticsearch 7.17 版本的单机模式。我们从安装 Java 环境、下载并配置 Elasticsearch,到启动、排查常见错误、验证安装等方面进行了详细介绍。希望这篇文章能够帮助你顺利在本地环境中运行 Elasticsearch,为开发和测试提供便利。

如果你有任何疑问或遇到其他问题,欢迎在评论区留言。

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

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

相关文章

正点原子Linux 移植USB Wifi模块MT7601U驱动(上)

目录 下载驱动MT7601驱动文件中重要的几个文件1.README_STA_usb2.sta_ate_iwpriv_usage.txt3.config.mk4.Makefile 移植过程编译驱动成ko文件复制到根文件系统里驱动加载失败常见原因A. DMA缓存大小不够B. RT2870STA.dat文件没配置好 模块加载测试开启无线网卡并设置IP地址 参考…

Linux相关概念和易错知识点(26)(命名管道、共享内存)

目录 1.命名管道 (1)匿名管道 -> 命名管道 ①匿名管道 ②命名管道 (2)命名管道的使用 ①创建和删除命名管道文件 ②命名管道文件的特性 ③命名管道和匿名管道的区别 (3)用命名管道实现进程间通信…

【时时三省】(C语言基础)对比一组函数

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 对比一组函数 比如对比一下scanf fscanf sscanf和printf fprintf sprintf scanf 针对标准输入的格式化的输入语句 其实它针对的是stdin fscanf 针对所有输入流的格式化的输入语句 它是针对s…

Leecode刷题C语言之组合总和②

执行结果:通过 执行用时和内存消耗如下: int** ans; int* ansColumnSizes; int ansSize;int* sequence; int sequenceSize;int** freq; int freqSize;void dfs(int pos, int rest) {if (rest 0) {int* tmp malloc(sizeof(int) * sequenceSize);memcpy(tmp, seque…

汽车网络信息安全-ISO/SAE 21434解析(下)

目录 第十二~十四章 - 后开发阶段 1. 十二章节 - 生产 2. 十三章节 - 运营与维护 网络安全事件响应 更新 3. 十四章节 - 结束网络安全支持和停用 结束网络安全支持 报废 第十五章 - TARA分析方法 1. 概述 2. 资产识别 3. 威胁场景识别 4. 影响评级 5. 攻击路径分…

[java] java基础-字符串篇

目录 API String 创建字符串对象的两种方式: Java的内存模型 字符串常量池(串池)存放地址 两种构造方法的内存分析 String的常用方法 号比较的是什么 字符串比较(比较字符串的数据值) 遍历字符串 StringBui…

Unity中关于实现 管道水流+瀑布流动+大肠蠕动效果笔记

Unity中关于实现 管道水流瀑布流动大肠蠕动效果笔记 效果展示: 参考资料及链接: 1、如何在 Unity 中创建水效果 - 水弯曲教程 https://www.youtube.com/watch?v3CcWus6d_B8 关于补充个人技能中:顶点噪波影响网格着色器配合粒子实现水特效 …

Couchbase UI: Indexes

在Couchbase中,索引的这些指标可以帮助你评估索引的性能和状态。下面是每个指标的详细解释,以及如何判断索引的有效性: 1. Index Name(索引名称) 描述:每个索引都有一个唯一的名称。这个名称通常会包括表…

redis的分片集群模式

redis的分片集群模式 1 主从哨兵集群的问题和分片集群特点 主从哨兵集群可应对高并发写和高可用性,但是还有2个问题没有解决: (1)海量数据存储 (2)高并发写的问题 使用分片集群可解决,分片集群…

第一届“启航杯”网络安全挑战赛WP

misc PvzHE 去这个文件夹 有一张图片 QHCTF{300cef31-68d9-4b72-b49d-a7802da481a5} QHCTF For Year 2025 攻防世界有一样的 080714212829302316092230 对应Q 以此类推 QHCTF{FUN} 请找出拍摄地所在位置 柳城 顺丰 forensics win01 这个软件 云沙盒分析一下 md5 ad4…

ThreadLocal概述、解决SimpleDateFormat出现的异常、内存泄漏、弱引用、remove方法

①. ThreadLocal简介 ①. ThreadLocal是什么 ①. ThreadLocal本地线程变量,线程自带的变量副本(实现了每一个线程副本都有一个专属的本地变量,主要解决的就是让每一个线程绑定自己的值,自己用自己的,不跟别人争抢。通过使用get()和set()方法,获取默认值或将其值更改为当前线程…

蓝桥杯模拟算法:多项式输出

P1067 [NOIP2009 普及组] 多项式输出 - 洛谷 | 计算机科学教育新生态 这道题是一道模拟题&#xff0c;我们需要分情况讨论&#xff0c;我们需要做一下分类讨论 #include <iostream> #include <cstdlib> using namespace std;int main() {int n;cin >> n;for…

LLM - 大模型 ScallingLaws 的设计 100B 预训练方案(PLM) 教程(5)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145356022 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

深度解析:基于Vue 3的教育管理系统架构设计与优化实践

一、项目架构分析 1. 技术栈全景 项目采用 Vue 3 TypeScript Tailwind CSS 技术组合&#xff0c;体现了现代前端开发的三大趋势&#xff1a; 响应式编程&#xff1a;通过Vue 3的Composition API实现细粒度响应 类型安全&#xff1a;约60%的组件采用TypeScript编写 原子化…

计算机组成原理(2)王道学习笔记

数据的表示和运算 提问&#xff1a;1.数据如何在计算机中表示&#xff1f; 2.运算器如何实现数据的算术、逻辑运算&#xff1f; 十进制计数法 古印度人发明了阿拉伯数字&#xff1a;0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#…

(详细)Springboot 整合动态多数据源 这里有mysql(分为master 和 slave) 和oracle,根据不同路径适配不同数据源

文章目录 Springboot 整合多动态数据源 这里有mysql&#xff08;分为master 和 slave&#xff09; 和oracle1. 引入相关的依赖2. 创建相关配置文件3. 在相关目录下进行编码&#xff0c;不同路径会使用不同数据源 Springboot 整合多动态数据源 这里有mysql&#xff08;分为maste…

AI如何帮助解决生活中的琐碎难题?

引言&#xff1a;AI已经融入我们的日常生活 你有没有遇到过这样的情况——早上匆忙出门却忘了带钥匙&#xff0c;到了公司才想起昨天的会议资料没有打印&#xff0c;或者下班回家还在纠结晚饭吃什么&#xff1f;这些看似微不足道的小事&#xff0c;往往让人疲惫不堪。而如今&a…

一分钟搭建promehteus+grafana+alertmanager监控平台

为什么要自己搭建一个监控平台 平时进行后端开发&#xff0c;特别是微服务的后端可开发&#xff0c;一定少不了对接监控平台&#xff0c;但是平时进行一些小功能的测试又没有必要每次都手动安装那么多软件进行一个小功能的测试&#xff0c;这里我使用docker-compose搭建了一个…

深入MapReduce——计算模型设计

引入 通过引入篇&#xff0c;我们可以总结&#xff0c;MapReduce针对海量数据计算核心痛点的解法如下&#xff1a; 统一编程模型&#xff0c;降低用户使用门槛分而治之&#xff0c;利用了并行处理提高计算效率移动计算&#xff0c;减少硬件瓶颈的限制 优秀的设计&#xff0c…

前端【10】jQuery DOM 操作

目录 jquery捕获查取 获得内容 - text()、html() 以及 val() 获取属性 - attr() ​编辑 jQuery 修改/设置内容和属性 设置内容 - text()、html() 以及 val() 设置属性 - attr() jQuery添加元素 jQuery - 删除元素 前端【9】初识jQuery&#xff1a;让JavaScript变得更简…