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

如何在 Ubuntu 22.04 上安装 Elasticsearch

简介

在本教程中,你将学习如何在 Ubuntu 22.04 服务器上安装 Elasticsearch。此外,你还将学习如何使用 Elasticsearch REST API 索引和操作数据。

Elasticsearch 是一个基于 Apache Lucene Library 的免费分布式搜索和分析引擎。它是一个快速且可扩展的分析引擎,提供了一个广泛的 API,允许你处理 JSON 请求并在几毫秒内获得反馈。这使其成为数据分析和搜索用例的理想选择。

Elasticsearch 是 ELK Stack(Elasticsearch、Logstash、Kibana)的关键组件,用于索引和存储数据。它的结构不是基于表和模式,而是基于文档,数据以键值对的形式存储。

本教程的目标是手把手教你如何在 Linux 服务器上安装 Elasticsearch。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

  • 到此为止,我们的云服务器就远程连接上了。

第一步:安装 Elasticsearch

Elasticsearch 没有正式托管在 Ubuntu 的默认软件包存储库中。唯一的方法是将 Elastic 的软件包源列表添加到源列表目录。添加后,你可以使用 APT 软件包管理器进行安装。

首先,你需要添加 Elasticsearch GPG 签名密钥,以便验证 Elasticsearch 软件包。经过身份验证的软件包可确保你的系统可以通过软件包管理器信任安装在你系统上的软件包的完整性。

要添加签名密钥,请使用 curl 命令导入 Elasticsearch 公共 GPG 密钥。

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

添加 GPG 密钥后,将 Elastic 源列表添加到 sources.list.d 目录。

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

接下来,更新本地软件包列表 ,以通知系统新添加的存储库。

sudo apt update

然后使用以下命令安装 Elasticsearch:

$ sudo apt install elasticsearch

该命令将安装 Elasticsearch,还会创建一个名为 elasticsearch 的用户和组。

第二步:配置 Elasticsearch

Elasticsearch 的主要配置文件是位于 /etc/elasticsearch 目录中的 elasticsearch.yml 文件。这是一个 YAML 文件,用于存储集群、节点、内存、路径和网络设置。它是主要的配置文件,并在很大程度上控制着 Elasticsearch 的功能。

为了根据你的偏好自定义 Elasticsearch,需要进行一些配置。因此,请使用你喜欢的文本编辑器访问该文件。在本示例中,我们使用 nano 编辑器。

sudo nano /etc/elasticsearch/elasticsearch.yml

首先,指定一个集群名称。请注意,只有当节点的集群名称与同一集群中的其他节点相同时,该节点才能加入集群。

滚动到 Cluster 部分,并取消注释 cluster.name 指令。为你的集群提供一个描述性的名称。为了演示目的,我们将其重命名为 my-cluster

# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-cluster
#

接下来,配置节点名称。这由 node.name 指令定义。默认情况下,此设置为 node-1。你可以通过取消注释并提供你喜欢的名称来手动配置它。在这里,我们将其命名为 sample-node

# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: sample-node
#

默认情况下,Elasticsearch 侦听来自 localhost 或 IP 地址 127.0.0.1 的流量。要查询另一个服务器,请将 network.host 指令设置为相应的 IP 地址。向下滚动到“网络”部分,并将其设置为你首选的 IP。在我们的例子中,我们将其设置为 localhost

# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: localhost
#

最后,指定 Elasticsearch 侦听的 HTTP 端口。默认情况下,这是端口 9200。你可以保持原样或提供不同的端口。

完成修改设置后,保存更改并退出配置文件。接下来,运行以下命令以通知系统所做的更改。

sudo systemctl daemon-reload

接下来,启用 Elasticsearch 服务以在启动时启动。

sudo systemctl enable elasticsearch

然后如下所示启动 Elasticsearch 服务。这通常需要大约一分钟,并且一旦你按下 ENTER 键,该命令可能会显示为卡住或冻结。所以,不要惊慌。耐心一点就好。

sudo systemctl start elasticsearch

要确认 Elasticsearch 正在运行,请执行以下命令:

sudo systemctl status elasticsearch

从输出中,你可以看到 Elasticsearch 正在运行。

第三步:测试 Elasticsearch

至此,Elasticsearch 已安装并在端口 9200 上运行,这是其默认端口。测试 Elasticsearch 是否工作的最简单方法是使用 curl 命令 发送 GET 请求来查询 Elasticsearch 服务器,如下所示。

curl -X GET '<http://localhost:9200>'

如果你的安装顺利进行,你应该以 JSON 格式获得以下输出,其中显示了服务器详细信息。

有关 Elasticsearch 服务器的深入信息,请运行以下命令:

curl -X GET '<http://localhost:9200/_nodes?pretty>'

?pretty 指令将输出格式化为人类可读的格式。

第四步:配置 UFW 防火墙

目前,任何拥有你的服务器 IP 的人都可以访问 Elasticsearch HTTP API。你可能希望将访问权限限制为仅你的 IP 地址,而不是其他人。

你可以通过 配置 UFW 防火墙 来实现此目的,方法是应用以下规则,其中 [你的-ip-地址] 是你的公共 IP 地址。

sudo ufw allow from [你的-ip-地址] to any port 9200

要添加另一个 IP 地址,请再次运行相同的命令,这次使用不同的 IP 地址。

如果防火墙未启用,请确保启用它。

sudo ufw enable

重新加载防火墙以使规则生效。

sudo ufw reload

然后验证防火墙状态。

sudo ufw status

第五步:使用 Elasticsearch

Elasticsearch 使用 RESTful API,允许它执行与 CRUD 操作相对应的基本操作,例如创建、读取、更新和删除。与这些操作等效的 HTTP 方法分别是 POSTGETPUTDELETE

要开始使用 Elasticsearch,你需要先使用一些数据填充索引。索引相当于关系数据库中的数据库。它是文档的集合,每个文档都包含按键值对组织的字段,其中包含数据。

要创建文档,你需要使用索引名称、类型和 ID,向 API 发送 PUT 请求(使用 Curl 命令)。

让我们索引一些内容。在下面的命令中,我们创建了一个名为 movies 的索引,类型为 genre,ID 为 1。该索引以 JSON 格式存储有关电影的信息。

curl -XPOST -H "Content-Type: application/json" 'http://localhost:9200/movies/genre/1' -d \\'{"title": "Designated Survivor","director": "David Guggenheim","year": 2016,"genre": ["Drama", "Crime"]}'

你应该获得与我们类似的输出。

要检索此条目,请发送 HTTP GET 请求,如下所示。

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/movies/genre/1'

你应该获得以下输出。

现在,我们将使用 HTTP PUT 请求修改条目。

curl -X PUT -H "Content-Type: application/json" 'http://localhost:9200/movies/genre/1?pretty' -d \\
'{"title": "Shooter","director": "Antoine Fuqua","year": 2007,"genre": ["Drama", "Crime"]}'

Elasticsearch 将确认所做的更改并显示以下输出。修改电影记录后,请注意版本号已自动增加到 2。这表示已对文档进行了修改。

要验证所做的更改,请通过发送 GET 请求来查看记录。

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/movies/genre/1?pretty'

命令末尾的 ?pretty 部分将输出格式化为更易于人类阅读的格式。

结论

完成本教程中的每个步骤后,你已成功安装和配置了 Elasticsearch,并使用 HTTP POST、GET 和 PUT 方法测试了其功能。

有关 Elasticsearch 的更多信息,请参阅 Elasticsearch 官方文档。

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site

相关文章:

如何在 Ubuntu 22.04 上安装 Elasticsearch

简介 在本教程中&#xff0c;你将学习如何在 Ubuntu 22.04 服务器上安装 Elasticsearch。此外&#xff0c;你还将学习如何使用 Elasticsearch REST API 索引和操作数据。 Elasticsearch 是一个基于 Apache Lucene Library 的免费分布式搜索和分析引擎。它是一个快速且可扩展的…...

单片机长耗时前后台任务优化

代码&#xff1a; void Task_10ms(void) {... }//改 void Task_2ms(void) {static uint8_t s_state 0switch(s_state){case 0:....s_state 1;break;case 1:....s_state 2;break;case 3:....s_state 1;break;default: //此段可以去除s_state 0;break; } } 参考链接 MCU长…...

Linux大数据方向shell

一、概述 shell是一个命令行解释器&#xff0c;它接收应用程序/用户命令&#xff0c;然后调用操作系统内核&#xff0c;还是一个功能相当强大的编程语言&#xff0c;易编写&#xff0c;易调试&#xff0c;灵活性强。 二、shell入门 1.输出hello world touch helloworld.sh&…...

爬虫 APP 逆向 ---> shopee(虾皮) 电商

shopee 泰国站点&#xff1a;https://shopee.co.th/ shopee 网页访问时&#xff0c;直接弹出使用 app 登录查看&#xff0c;那就登录 shopee 泰国站点 app。 手机抓包&#xff1a;分类接口 接口&#xff1a;https://mall.shopee.co.th/api/v4/pages/get_category_tree 请求参…...

axios 常见的content-type、responseType有哪些?

一、Content Type Content Type &#xff0c;也被称为MIME类型&#xff08;Multipurpose Internet Mail Extensions&#xff09;&#xff0c;是一种用于标识数据格式的机制。在HTTP协议中&#xff0c;Content Type’通常通过请求或响应头部的’Content-Type’字段来指定。这个…...

从零开始C++游戏开发之第七篇:游戏状态机与回合管理

在游戏开发的道路上&#xff0c;状态管理是一个无法绕开的重要课题。尤其是在棋牌类游戏中&#xff0c;游戏的进行需要有条不紊地按照回合推进&#xff0c;同时管理多个游戏状态&#xff0c;如“等待玩家加入”、“游戏进行中”、“结算阶段”等。如何优雅且高效地实现这些逻辑…...

【全开源】Java多语言tiktok跨境商城TikTok内嵌商城送搭建教程

开发工具&#xff1a;IntelliJ IDEA 部署环境: Tomcat8.x Mysql5.6 JDK1.8 Maven3.x Redis ZooKeeper3.4。 本系统开发使用JAVA技术栈开发 使用uniapp技术栈 支持多端 H5AndroidIOS PC端使用&#xff1a;vueelementui 用户端使用&#xff1a;uniapp 管理端使用&#xff1a…...

mac启ssh服务用于快速文件传输

x.1 在mac上启SSH服务 方法一&#xff1a;图形交互界面启ssh&#xff08;推荐&#xff09; 通过sharing - advanced - remote login来启动ssh&#xff1b;&#xff08;中文版mac应该是 “系统设置 → 通用 → 共享”里打开“远程登录”来启动&#xff09; 查看自己的用户名和…...

《探索 Apache Spark MLlib 与 Java 结合的卓越之道》

在当今大数据与人工智能蓬勃发展的时代&#xff0c;Apache Spark MLlib 作为强大的机器学习库&#xff0c;与广泛应用的 Java 语言相结合&#xff0c;为数据科学家和开发者们提供了丰富的可能性。那么&#xff0c;Apache Spark MLlib 与 Java 结合的最佳实践究竟是什么呢&#…...

使用 Python 创建多栏 Word 文档 – 详解

目录 引言 一、工具与安装 二、Python 在 Word 中创建简单的多栏布局 三、Python 在 Word 文档的栏间添加分隔线 四、Python 从Word文档的指定位置开启多栏设置 五、Python 为多栏 Word 文档的各栏添加页码 引言 在文档设计中&#xff0c;排版不仅决定了内容的呈现方式&…...

WebPack3项目升级webpack5的配置调试记录

文章目录 前言一、webpack3环境1.1、知识点记录1.1.1、配置解释1.1.2、webpack与sass版本对应关系1.1.3、CommonJS与ESModule1.1.4、node版本管理nvm1.1.5、sass-loader、sass与node-sass 1.2、其他1.2.1、.d.ts是什么文件1.2.2、react与types/react版本对应关系1.2.3、webpack…...

Mysql的MHA高可用及故障切换

Mysql的MHA高可用及故障切换 MHA主从复制的单点问题配置1. 主从复制2. MHA高可用安装MHA的组件配置无密码认证manager节点配置manager节点上测试启动连接 故障切换模拟恢复 MHA master high availability 建立在主从复制基础之上的故障切换的软件系统。 主从复制的单点问题 …...

【ES6复习笔记】箭头函数(5)

简介 本教程将介绍如何在 JavaScript 中使用箭头函数&#xff0c;包括箭头函数的基本语法、特点以及在实际开发中的应用。通过本教程&#xff0c;你将学会如何使用箭头函数来简化代码&#xff0c;提高代码的可读性和简洁性。 箭头函数的基本语法 箭头函数是 ES6 引入的一种新…...

单片机学习笔记——入门51单片机

一、单片机基础介绍 1.何为单片机 单片机&#xff0c;英文Micro Controller Unit&#xff0c;简称MCU 。内部集成了中央处理器CPU、随机存储器ROM、只读存储器RAM、定时器/计算器、中断系统和IO口等一系列电脑的常用硬件功能 单片机的任务是信息采集&#xff08;依靠传感器&a…...

Docker Run使用方法及参数详细说明

Docker Run使用方法及参数详细说明 基本语法常用参数使用示例总结Docker Run是Docker中最基本的命令之一,用于创建并启动一个新的容器。通过Docker Run,用户可以基于指定的镜像创建一个容器实例,并且可以配置容器的各种参数,如网络设置、存储选项等。下面将详细介绍Docker …...

面试场景题系列:设计限流器

首先看看使用API限流器的好处。 •预防由拒绝服务攻击(Denial of Service&#xff0c;DoS)引起的资源耗尽问题。大型科技公司发布的所有API几乎都强制执行某种形式的限流操作。例如&#xff0c;推特限制每个用户每3小时最多发300条推文。谷歌文档API的默认限制是每个用户每60秒…...

【蓝桥杯——物联网设计与开发】拓展模块3 - 温度传感器模块

目录 一、温度传感器模块 &#xff08;1&#xff09;资源介绍 &#x1f505;原理图 &#x1f505;STS30-DIS-B &#x1f319;引脚分配 &#x1f319;通信 &#x1f319;时钟拉伸&#xff08;Clock Stretching&#xff09; &#x1f319;单次触发模式 &#x1f319;温度数据转…...

网狐旗舰版源码搭建概览

简单的列一下&#xff1a; 服务端源码内核源码移动端源码核心移动端源码AI控制工具源码多款子游戏源码前端、管理后台、代理网站源码数据库自建脚本UI工程源码配置工具及二次开发帮助文档 编译环境要求 VS2015 和 Cocos3.10 环境&#xff0c;支持移动端 Android 一键编译&am…...

vue3中使用vuedraggable实现拖拽

包安装方式 yarn add vuedraggablenext npm i -S vuedraggablenext属性说明 如果下面的属性说明未能完全看明&#xff0c;可以看左边的对应的菜单查看详细说明和例子。 完整例子 <template><div class"itxst"><div><draggable:list"s…...

leetcode 7. 整数反转

class Solution { public: int reverse(int x) { long long n0; if(x0) return 0; while(x%100) { xx/10; } while(x!0) { nn*10x%10; xx/10; } if(n<-2147483648||n>2147483647) return 0; return n; } };...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...