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.hqwc.cn/news/578344.html

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

相关文章

钉钉服务端API报错 错误描述: robot 不存在;解决方案:请确认 robotCode 是否正确

problem 调用钉钉服务端API,机器人发送群聊消息,后台返回报错信息: 钉钉服务端API报错 错误描述: robot 不存在;解决方案:请确认 robotCode 是否正确; reason 定位: 登录后台,查看机器人是存在查看机器人调用权限接…

新能源汽车充电桩常见类型及充电桩站场的智能监管方案设计

随着新能源汽车市场的迅猛发展,充电桩作为支持其运行的基础设施,也呈现出多样化的类型。这些充电桩不仅在外形和功能上存在差异,更在充电速度、充电方式以及使用场景等方面展现出独特的优势。 一、充电桩类型及区别 1、慢充桩(交…

Flask Python:请求上下文和应用上下文

请求上下文和应用上下文详解 一、背景二、什么是上下文2.1、请求上下文2.2、应用上下文2.3、两种上下文的底层逻辑 三、写在最后 一、背景 在如何实现异步发送邮件的时候,遇到过这样一个报错 RuntimeError: Working outside of request context.This typically me…

奥比中光Astra SDK相机SDK openni相机成像原理

目录 1.1 成像原理简介 1.1.1 结构光 1.1.2 双目视觉 1.1.3 光飞行时间TOF​ 2.使用手册 参考网址 2.1 产品集成设计 2.2 SDK介绍与使用 2.3 常用API介绍 OPENNI API 2 OpenNI类(OpenNI.h) 1.1 成像原理简介 1.1.1 结构光 结构光&#xff0…

PyTorch深度学习

一、深度学习的概念 如上所示,人工智能包含了机器学习和深度学习,其中深度学习是机器学习的一种特殊的学习方法,人工智能的核心是深度学习 1、深度学习 深度学习需要用到大量的神经网络构建和运算模块,故出现了很多的深度学习框…

Netty核心原理剖析与RPC实践6-10

Netty核心原理剖析与RPC实践6-10 06-粘包拆包问题:如何获取一个完整的网络包 本节课开始我们将学习 Netty 通信过程中的编解码技术。编解码技术这是实现网络通信的基础,让我们可以定义任何满足业务需求的应用层协议。在网络编程中,我们经常…

三个表的联合查询的场景分析-场景4:c表维护a和b表的id关联关系(一对多)

基础SQL演练,带详细分析,笔记和备忘。 目录 背景介绍 表数据 需求1:查询g表所有记录,以及关联的h的id 需求2:在需求1基础上,查出关联的h的其它字段(name) 需求3:在需…

1、Cocos Creator 基础入门

目录 Cocos Creator 是什么? 语言支持 功能特性 工作流程 功能模块 相关游戏 参考 Cocos Creator 是什么? Cocos Creator 既是一款高效、轻量、免费开源的跨平台 2D&3D 图形引擎,也是一个实时 2D&3D 数字内容创作平台。拥有…

vue3封装Element导航菜单

1. 导航外层布局 AsideView.vue <template><el-menu:default-active"defaultActive"class"my-menu":collapse"isCollapse":collapse-transition"false"open"handleOpen"close"handleClose"><menu…

aeon,一个好用的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个好用的 Python 库 - aeon Github地址&#xff1a;https://github.com/aeon-toolkit/aeon 在现代计算机科学和人工智能领域&#xff0c;处理时间序列数据是一个重要而复杂的任务。Python aeon库…

AI计算平台设计方案:901-基于3U VPX的图像数据AI计算平台

一、产品概述 设备基于3U VPX的导冷结构&#xff0c;集成FPGA接口预处理卡&#xff0c;GPU板卡、飞腾ARM处理卡&#xff0c;实现光纤、差分电口或者Camera link的图像接入&#xff0c;FPGA信号预处理&#xff0c;GPU AI计算&#xff0c;飞腾ARM的采集管理存储。 二、系统…

2023年第十四届蓝桥杯大赛软件类省赛C/C++研究生组真题(代码完整题解)

C题-翻转⭐ 标签:贪心 简述:如果 S 中存在子串 101 或者 010,就可以将其分别变为 111 和 000,操作可以无限重复。最少翻转多少次可以把 S 变成和 T 一样。 链接: 翻转 思路:要求步骤最少->S每个位置最多修改一次->从头开始遍历不匹配就翻转->翻转不了就-1 …