Linux 环境安装 Elasticsearch 8.X

安装前说明

  1. 首先确定操作系统,在Linux发行版上执行uname -a查看具体系统。我是Ubuntu系统,可以用直接用apt-get安装,也可以下载tar.gz包手动安装。使用apt-get安装更方便快速,但不同的文件会被安装到不同的目录,不方便管理,下载.tar.gz包后手动安装文件都在同一个目录下,查看更方便,但安装较为麻烦,请注意取舍。
  2. elasticsearch 安装需要依赖JDK,最新版的安装包会自带JDK(bundled),如果你的环境中没有安装JDK或未配置JAVA_HOME环境变量,则会直接使用它自带的JDK,如果你的环境中已经安装有 JDK并配置了JAVA_HOME环境变量,会优先使用你的 JDK,但需要保证你的JDK版本与 elasticsearch 需要的版本匹配,最好是openjdk。
  3. 我在第一次使用apt-get安装时因为未修改默认JVM堆内存配置(4G),导致oom安装失败,所以第二次通过.tar.gz包安装前将JVM堆内存修改成了1G,你可以按你的环境配置决定。

注意:请先阅读下面两种安装方式的步骤,选择合适的安装方式后再进行安装

使用 apt-get 安装

注意:这种方式安装安装简单,但 elasticsearch 的各类文件不在同一个目录下,不方便管理

参照 elastic 官方安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html
安装步骤参照 https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
按下面步骤依次执行命令:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
apt-get install apt-transport-https
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt-get update && sudo apt-get install elasticsearch

运行完上面命令,不出意外就能安装成功,注意,记录下最后打印的超级用户(superuser)的密码,登录使用
在这里插入图片描述
然后根据最后的提示,再执行如下命令启动:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

不出意外的话,会成功。
但是我出意外了,启动失败(忘记截图了),它告诉我可以用journalctl -xeu elasticsearch.service命令查看错误原因:
在这里插入图片描述
看到oom-kill就明白了,我的小服务器内存不够它玩。它默认的堆内存大小是4G,而我的服务器内存总共才4G,所以我需要降低堆内存配置。
这里需要说明的是,正常情况下 elastsearch的安装包下有个config目录保存的是一些配置文件,但是通过apt-get install安装的安装目录/usr/share/elasticsearch下没有config目录:
在这里插入图片描述
于是我就在安装步骤后面找配置文件位置(感兴趣的戳这里查看不同文件所在目录 Directory layout of Debian package),原来配置目录变成了/etc/elasticsearch
在这里插入图片描述
OK,我需要改jvm配置,本来想直接改jvm.options,但是进去发现它建议在jvm.options.d下自己建文件修改,那好吧,我就在下面单独建了个heap.options,里面写上配置:

-Xms1g
-Xmx1g

咱这家底,给分个 1G 让它勉强玩玩得了。
OK,修改好并保存后重新启动,执行systemctl start elasticsearch.service命令,不报错就是成功了。

下载 .tar.gz 安装

这种方式安装较为麻烦,但自主可控。

参考官方安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html
首先下载安装包(官方指南里还会下载tar.gz.sha512后校验文件,这里省略此步骤),然后解压到当前目录:

# 下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.0-linux-x86_64.tar.gz
# 解压
tar -zxvf elasticsearch-8.13.0-linux-x86_64.tar.gz

上面命令会解压文件到./elasticsearch-8.13.0/目录,可以看到各类文件都在同一个目录下:
在这里插入图片描述
由于上面使用apt-get安装时已经知道JVM堆内存不够会导致安装失败,故启动前先修改JVM堆内存为1G,修改方式和上面相同,进入./config/jvm.options.d/目录创建一个heap.options文件,里面写上配置:

-Xms1g
-Xmx1g

修改后保存,再回到./elasticsearch-8.13.0/目录,运行启动文件(加上 -d,守护进程启动,否则退出shell后进程就会挂掉):

./bin/elasticsearch -d # -d 表示守护进程启动

不出意外,肯定失败了。报错信息为 fatal exception while booting Elasticsearchjava.lang.RuntimeException: can not run elasticsearch as root。原来 elasticsearch 不允许root用户进行安装,这是出于安全考虑。
OK,那我们单独新建个用户组 es 和用户 es:

groupadd es #新建用户组 es
useradd es -g es -p 你的密码 # 在 es 用户组下面建 es 用户,并指定你的登录密码

建好新用户后,回到 elasticsearch-8.13.0 的上层目录,为 es 用户授权该目录:

chown -R es:es ./elasticsearch-8.13.0

这时,目录已经属于 es 用户了:
在这里插入图片描述
好的很,然后进入elasticsearch-8.13.0 目录,执行su es命令切换到 es 用户身份,再运行./bin/elasticsearch -d命令启动:

cd ./elasticsearch-8.13.0
su es
# 切换到 es 后执行
./bin/elasticsearch -d

不出意外,会启动成功:
在这里插入图片描述
注意:同上面一样,最后输出的日志非常重要,所以建议复制保存在一个文件中。最后输出的elastic用户的初始密码,你需要记录下来,登录时使用,但如果你忘了没记下来,也可以运行./bin/elasticsearch-reset-password -u elastic重新生成一个。

连接测试

启动成功后我们可以用curl连接默认端口9200测试:

curl 127.0.0.1:9200

不出意外,应该会返回 curl: (52) Empty reply from server。这是因为 elasticsearch 默认开启了 xpack 认证,我们刚开始测试阶段,可以先全部关掉。进入.elasticsearch-8.13.0/config/elasticsearch.yml目录,可以看到与认证相关的配置,这段配置是启动后加上去的,我们将与 xpack 有关的配置修改为 false:
在这里插入图片描述
然后重启即可(先ps找到进程id,kill掉后再运行上面的启动命令)。
本机运行 curl 连接:
在这里插入图片描述
公网浏览器访问http://ip:9200/(如果连接失败可检查防火墙或云服务器安全组是否开放9200端口):
在这里插入图片描述
发送一条查看节点信息的请求ip:9200/_cat/nodes?v
在这里插入图片描述
说明安装完成!

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

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

相关文章

OSCP靶场--RubyDome

OSCP靶场–RubyDome 考点(CVE-2022-25765 suid ruby提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.249.22 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-29 00:28 EDT Nmap scan report for 192.168.249.22 Hos…

实时渲染是什么意思?实时渲染和离线渲染的区别

一、实时渲染是什么意思? 实时渲染是指在计算机程序运行时即时地生成图像和动画的过程,这种渲染技术通常用于网络游戏、虚拟现实和增强现实等需要实时交互的XR应用中。实时渲染需要在每秒内渲染数百万到数十亿个像素,以呈现出平滑的动画和交…

深入并广泛了解Redis常见的缓存使用问题

Redis 作为一门主流技术,缓存应用场景非常多,很多大中小厂的项目中都会使用redis作为缓存层使用。 但是Redis作为缓存,也会面临各种使用问题,比如数据一致性,缓存穿透,缓存击穿,缓存雪崩&#…

39.基于SpringBoot + Vue实现的前后端分离-无人智慧超市管理系统(项目 + 论文PPT)

项目介绍 随着互联网时代的发展,传统的线下管理技术已无法高效、便捷的管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,国家在环境要求不断提高的前提下,无人智慧超市管理系统建设也逐渐进入了信…

AI新工具 小模型也有大智慧Qwen1.5-MoE;大模型动态排行榜;马斯克更新Grok-1.5

✨ 1: Qwen1.5-MoE 阿里巴巴一款小型 MoE 模型,只有 27 亿个激活参数,但性能与最先进的 7B 模型(如 Mistral 7B 和 Qwen1.5-7B)相匹配。 Qwen1.5-MoE是一个使用混合专家模型(Mixture-of-Experts,MoE&…

小型分布式文件存储系统GoFastDfs应用简介

前言 最近稍微留意了一下各个文件存储系统的协议,发现minio是LGPLV3, 而fastdfs 是GPL3,这些协议其实对于商业应用是一个大坑。故而寻找一些代替品。 go-fastdfs就是其中之一,官网在: go-fastdfs 具体应用 其实可以直接查看官网教程的。 下…

【学习】JMeter和Postman两种测试工具的主要区别有哪些

Postman和JMeter都是常用的API测试工具,但它们之间存在一些不同之处。以下是Postman和JMeter的主要区别: 语言支持 Postman是一个基于Chrome的应用程序,因此它使用JavaScript作为编程语言。这意味着你可以使用JavaScript来编写测试脚本和断…

element-ui升级到element-plus兼容性问题处理

1.报错:dropdown-item.mjs:42 Uncaught (in promise) TypeError: Cannot destructure property ‘onItemEnter’ of ‘(0 , vue__WEBPACK_IMPORTED_MODULE_0__.inject)(…)’ as it is undefined. 对应的源码位置如下,是elemen-plus中的dropdown-item文件…

【2024系统架构设计】案例分析- 4 嵌入式

目录 一 基础知识 二 真题 一 基础知识 1 基本概念 ◆系统可靠性是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。或者,可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。

基于springboot+vue+Mysql的家政服务管理平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

基于STC12C5A60S2系列1T 8051单片机通过单个按键单击次数实现开关机应用

基于STC12C5A60S2系列1T 8051单片机通过单个按键单击次数实现开关机应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍基于STC12C5A60S2系列1T 8051单片机通过单个按…

软件工程学习笔记14——案例解析篇

一、大型开源项目对软件工程的应用 以VS Code为例,看大型开源项目是如何应用软件工程的。 软件工程的核心,就是围绕软件项目开发,对开发过程的组织,对方法的运用,对工具的使用。 所以当我们去观察一个软件项目&#…

Linux(CentOS7.5) 安装部署 Python3.6(超详细!包含 Yum 源配置!)

文章目录 1.配置 Yum 源2.下载 Python3 包3. 解压4.安装依赖环境5.安装出错场景 6.创建软链接7.配置 Python3 的环境变量8.验证补充:安装 openssl-devel补充:pip3 源配置 1.配置 Yum 源 # 注意!!!请先切换到 root 账号…

FPGA Artix7 Bootloader App Python升级

文章目录 软硬环境复现官方 srec_spi_bootloader例子简介Vivado硬件部分存储划分Vitis 嵌入式 BootVitis 嵌入式 Appelf转换srec合并boot和app得到mcs文件下载测试过程分析 基础知识BIT MCS HEX BINBit SwappingSREC 文件格式Vivado约束 串口Boot地址划分链接脚本修改Github Li…

五、基于KubeAdm搭建多节点K8S集群

如需查阅上一步骤,请点击下面链接:四、戴尔R630本地服务器Linux Centos7.9系统安装docker-ce-20.10.10-3.el7版本-CSDN博客文章浏览阅读727次,点赞12次,收藏13次。1、准备工作3、Linux Centos7.9系统的iDRAC远程管理、网络设置、SecureCRT远程登录终端、企业级静态ip地址配…

HarmonyOS实战开发-使用Flex容器组件,实现弹性布局效果。

介绍 本篇Codelab是基于Flex容器组件,实现弹性布局效果。弹性布局的特点是页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变。 相关概念 Flex组件:以弹性方式布局子组件的容器组件。Search组件:搜索框组件,…

一则关于Go的高级构建指北

本文将探索Golang高级构建技巧,从而有助于创建更高效的二进制文件。 构建选项 以下是 go build 命令最常用的一些选项: -o: 指定输出文件名。默认输出文件名是主软件包的名称,在 Windows 系统中会自动添加 .exe 后缀。-v: 详细输出。该选项…

4、Cocos Creator 动画系统

目录 1、Clip 参数 2、动画编辑器 3、基本操作 更改时间轴缩放比例 移动显示区域 更改当前选中的时间轴节点 播放 / 暂停动画 修改 clip 属性 快捷键 4、模拟实验 5、动画事件 6、注意事项 参考 Animation 组件是节点上的一个组件。Clip 动画剪辑就是一份动画的声…

vue源码解析—— watch/computed的实现逻辑和区别

watch 和 computed 是 Vue 中的两个重要的响应式属性,它们在实现机制和使用上存在一些区别。 watch:用于监听数据的变化,并在数据变化时执行回调函数。可以使用 deep 配置项来开启深度监听,监听数据的子属性变化。可以使用 immedi…

基于51单片机和MAX1898的智能手机充电器设计

**单片机设计介绍,基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机和MAX1898的智能手机充电器设计概要 一、引言 随着智能手机的普及,其电池续航…