如何在 Ubuntu 18.04 上安装 Elasticsearch

2023-11-10

Elasticsearch 是一个开源分布式全文搜索和分析引擎。它支持 RESTful 操作,允许您实时存储、搜索和分析大量数据。

Elasticsearch 是最流行的搜索引擎之一,为具有复杂搜索要求的应用程序(例如大型电子商务商店和分析应用程序)提供支持。

在本教程中,我们将向您展示如何在 Ubuntu 18.04 上安装 Elasticsearch。相同的说明适用于 Ubuntu 16.04 和任何基于 Ubuntu 的发行版,包括 Linux Mint、Kubuntu 和 Elementary OS。

先决条件#

您需要以以下身份登录具有 sudo 权限的用户能够在 Ubuntu 系统上安装软件包。

安装Elasticsearch#

在 Ubuntu 18.04 上安装 Elasticsearch 最简单的方法是从官方 Elasticsearch 存储库安装 deb 软件包。

在撰写本文时,Elasticsearch 的最新版本是7.0.0并且需要在系统上安装 Java 8。

首先更新软件包索引并安装apt-transport-https通过 HTTPS 访问存储库所需的包:

sudo apt updatesudo apt install apt-transport-https

安装 OpenJDK 8 :

sudo apt install openjdk-8-jdk

通过运行以下命令来验证 Java 安装,该命令将打印 Java 版本:

java -version

输出应如下所示:

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

现在 Java 已安装,下一步是添加 Elasticsearch 存储库。

使用以下命令导入存储库的 GPGwget命令:

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

上面的命令应该输出OK这意味着密钥已成功导入,并且此存储库中的包将被视为受信任。

接下来,通过发出以下命令将 Elasticsearch 存储库添加到系统中:

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
如果您想安装以前版本的 Elasticsearch,请更改7.x在上面的命令中使用您需要的版本。

启用存储库后,更新apt键入以下命令列出软件包列表并安装 Elasticsearch 引擎:

sudo apt updatesudo apt install elasticsearch

安装过程完成后,Elasticsearch 服务不会自动启动。要启动服务并启用服务,请运行:

sudo systemctl enable elasticsearch.servicesudo systemctl start elasticsearch.service

您可以通过使用以下命令向本地主机上的端口 9200 发送 HTTP 请求来验证 Elasticsearch 是否正在运行卷曲命令 :

curl -X GET "localhost:9200/"

您应该看到与此类似的内容:

{
  "name" : "kwEpA2Q",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "B-5B34LXQFqDeIYwSgD3ww",
  "version" : {
    "number" : "7.0.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "b7e28a7",
    "build_date" : "2019-04-05T22:55:32.697037Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.7.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

服务启动需要 5-10 秒。如果你看到curl: (7) Failed to connect to localhost port 9200: Connection refused,等待几秒钟,然后重试。

如果您想查看 Elasticsearch 服务记录的消息,可以使用以下命令:

sudo journalctl -u elasticsearch

恭喜,此时您已经在 Ubuntu 服务器上安装了 Elasticsearch。

配置Elasticsearch#

Elasticsearch 数据存储在/var/lib/elasticsearch目录,配置文件位于/etc/elasticsearch和 Java 启动选项可以在/etc/default/elasticsearch file.

默认情况下,Elasticsearch 配置为仅侦听本地主机。如果连接到数据库的客户端也在同一主机上运行,​​并且您正在设置单节点集群,则无需更改默认配置文件。

远程访问#

开箱即用的 Elasticsearch 不实现身份验证,因此任何可以访问 HTTP API 的人都可以访问它。如果您希望允许远程访问 Elasticsearch 服务器,则需要配置防火墙并仅允许受信任的客户端访问 Elasticsearch 端口 9200。

Ubuntu 自带了一个防火墙配置工具,叫做UFW。默认情况下,UFW 已安装但未启用。在启用 UFW 防火墙之前,首先添加一条允许传入 SSH 连接的规则:

sudo ufw allow 22

允许从远程可信 IP 地址进行评估:

sudo ufw allow from 192.168.100.20 to any port 9200
不要忘记改变192.168.100.20与您的远程 IP 地址。

通过键入以下内容启用 UFW:

sudo ufw enable

最后,检查防火墙的状态:

sudo ufw status

输出应如下所示:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
9200                       ALLOW       192.168.100.20
22 (v6)                    ALLOW       Anywhere (v6)

配置防火墙后,下一步是编辑 Elasticsearch 配置并允许 Elasticsearch 侦听外部连接。

为此,请打开elasticsearch.yml配置文件:

sudo nano /etc/elasticsearch/elasticsearch.yml

搜索包含以下内容的行network.host,取消注释,并将值更改为0.0.0.0:

/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0

如果您的计算机上有多个网络接口,您可以指定接口 IP 地址,这将使 Elasticsearch 仅侦听指定的接口。

重新启动 Elasticsearch 服务以使更改生效:

sudo systemctl restart elasticsearch

就是这样。您现在可以从远程位置连接到 Elasticsearch 服务器。

结论#

您已在 Ubuntu 18.04 上成功安装 Elasticsearch。您现在可以访问官方Elasticsearch 文档页面并了解如何开始使用 Elasticsearch。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 上安装 Elasticsearch 的相关文章

  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 什么是时序数据库?

    What is 时间序列数据库例如InfluxDB 我应该何时 何地使用它 请给我它的业务场景示例 检查wiki https en wikipedia org wiki Time series database 时间序列数据库 TSDB 是
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 基础设施即代码及其重要性

    技术领域有如此多的不同进步 跟上所有这些进步可能会成为一项相当具有挑战性的任务 这就是为什么您需要选择最重要的事情 并找出哪些技术 趋势和进步对您的生活影响最大 基础设施即代码绝对是其中之一 无论你做什么 你都需要研究这个想法 从处理云系统
  • 如何在 Debian 10 (Buster) 上安装 PHP

    PHP 7 3 是可供安装的最新稳定版本 本教程将帮助您在 Debian 系统上安装 PHP 最新版本 现在按照本教程在 Debian 10 Buster 上安装 PHP Debian 10 仍在开发中 因此本教程是使用 Debian 10
  • 每个设计师都必须了解的顶级网页设计工具

    网络开发行业是多年来由于技术进步而蓬勃发展的行业之一 技术的不断发展趋势为快速蓬勃发展并致力于比实体店更成功的企业准备了舞台 因此 如果您是其中之一 希望将自己的创意技能转化为网页设计 那么您需要设计一个具有吸引人的字体 颜色 图像和图形的
  • Linux 中的 Curl 命令及示例

    curl是一个命令行实用程序 用于从服务器传输数据或向服务器传输数据 无需用户交互即可工作 和curl 您可以使用支持的协议之一下载或上传数据 包括 HTTP HTTPS SCP SFTP and FTP curl提供了许多选项 允许您恢复
  • 如何在 Ubuntu 18.04 上安装 Gradle

    Gradle 是一种通用构建工具 主要用于 Java 项目 它结合了 Ant 的最佳功能和Maven 与使用 XML 进行脚本编写的前辈不同 Gradle 使用Groovy 一种动态的 面向对象的编程语言 用于 Java 平台定义项目和构建
  • Linux中的Fdisk命令(创建磁盘分区)

    安装新的 SSD 或硬盘后 您需要做的第一件事就是对其进行分区 驱动器至少需要有一个分区 然后才能对其进行格式化并在其上存储文件 在 Linux 中 您可以使用多种工具来创建分区 其中fdisk是最常用的一种 在这篇文章中 我们将讨论fdi
  • Linux 中的 Rsync 命令及示例

    rsync是一个快速且多功能的命令行实用程序 用于通过远程 shell 在两个位置之间或从 到远程 Rsync 守护进程同步文件和目录 它通过仅传输源和目标之间的差异来提供快速增量文件传输 Rsync 可用于镜像数据 增量备份 在系统之间复
  • 如何在 Linux 中创建目录(mkdir 命令)

    在 Linux 系统中 您可以从命令行或借助桌面文件管理器创建新目录 允许您创建目录 也称为文件夹 的命令是mkdir 本教程涵盖了使用的基础知识mkdir命令 包括日常示例 Linux mkdir 命令语法 语法为mkdir命令如下 mk
  • 如何在 Ubuntu 20.04 上安装 Apache

    Apache 是世界上最流行的 Web 服务器之一 它是一个开源 跨平台的 HTTP 服务器 为大部分互联网网站提供支持 Apache 提供了许多强大的功能 可以通过附加模块进行扩展 本教程介绍如何在 Ubuntu 20 04 上安装和管理
  • 如何在 Debian 9 上设置 SSH 密钥

    Secure Shell SSH 是一种加密网络协议 用于客户端和服务器之间的安全连接 支持各种身份验证机制 两种最流行的机制是基于密码和基于公钥的身份验证 使用 SSH 密钥比传统的密码身份验证更安全 更方便 在本教程中 我们将描述如何在
  • 什么是 503 服务不可用错误

    浏览网页时最常见的错误之一是 503 服务不可用错误 此消息表明网络服务器遇到技术问题 无法处理请求 本文解释了 503 错误的含义 为什么会收到 HTTP 503 代码以及如何解决这些错误 什么是 HTTP 503 错误 当您打开网页时
  • 如何使用 SSHFS 通过 SSH 挂载远程目录

    SSHFS SSH 文件系统 是基于 FUSE 的文件系统客户端 用于通过 SSH 连接挂载远程目录 SSHFS 使用 SFTP 协议 它是 SSH 的一个子系统 并且在大多数 SSH 服务器上默认启用 与其他网络文件系统协议 例如 NFS
  • Linux 中的 pidof 命令

    pidof是一个命令行实用程序 可让您查找正在运行的程序的进程 ID 在这篇文章中 我们将解释如何使用Linuxpidof命令 如何使用pidof命令 有不同的实现pidof适用于基于 Red Hat 和 Debian 的发行版 在 Red
  • 在 Ubuntu 20.04 上安装 ONLYOFFICE 文档

    ONLYOFFICE Docs 是一个根据 AGPLv3 许可证分发的开源办公套件 它允许处理办公文档 电子表格和演示文稿 以及可填写的表格 您可以将其另存为 PDF 文件 该套件使用 DOCX XLSX 和 PPTX 作为核心格式 保证与
  • 如何在 CentOS 8 上安装 VirtualBox 来宾添加

    虚拟盒子是开源的跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 VirtualBox 提供了一组驱动程序和应用程序 VirtualBox Guest Additions 可以安装在来宾操作系统中以扩展来宾操作系统的功能 例如共享文
  • 如何在Linux中检查监听端口(正在使用的端口)

    在对网络连接或特定于应用程序的问题进行故障排除时 首先要检查的事情之一应该是系统上实际使用的端口以及哪个应用程序正在侦听特定端口 本文介绍了如何使用netstat ss and lsof命令来找出哪些服务正在侦听哪些端口 这些说明适用于所有
  • 如何在 CentOS 7 上安装 Nginx

    Nginx 发音engine x是一个免费 开源 高性能的 HTTP 和反向代理服务器 负责处理 Internet 上一些最大网站的负载 Nginx 可以用作独立的 Web 服务器 也可以用作反向代理 for Apache和其他网络服务器
  • 如何在 Debian 10 上安装 Anaconda

    Anaconda 是最流行的 Python R 数据科学和机器学习平台 它用于大规模数据处理 预测分析和科学计算 Anaconda 发行版附带 1 500 多个开源数据包 它还包括 conda 命令行工具和名为 Anaconda Navig
  • 如何在 Linux 中更改用户密码

    在本指南中 我们将解释如何在 Linux 中更改用户密码 我们还将向您展示如何强制用户在下次登录时更改密码 这些说明适用于任何 Linux 发行版 包括 Ubuntu Debian 和 CentOS 介绍 在 Linux 中 您可以使用以下
  • 如何在 Ubuntu 18.04 上安装 Elasticsearch

    Elasticsearch 是一个开源分布式全文搜索和分析引擎 它支持 RESTful 操作 允许您实时存储 搜索和分析大量数据 Elasticsearch 是最流行的搜索引擎之一 为具有复杂搜索要求的应用程序 例如大型电子商务商店和分析应