如何在 Ubuntu VPS 上安装 Elasticsearch

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 如何在 Ubuntu VPS 上安装 Elasticsearch

Elasticsearch 是一个分布式、RESTful 搜索和分析平台。它可以根据需要进行扩展,并且您可以立即在单个 DigitalOcean droplet 上开始使用它。在本教程中,我们将在 Ubuntu 上下载、安装并开始使用 Elasticsearch。目前已经在以下系统上测试了提供的步骤:Ubuntu 12.04.3 x64 和 Ubuntu 13.10 x64。

依赖项


首先,通过运行 apt-get update 命令更新可用软件包的列表。

接下来,我们必须安装 Java 运行时。这里有两个选项。

  • 安装由 Ubuntu 提供的 OpenJDK 运行时。
  • 安装 Elasticsearch 推荐的 Java 运行时,Oracle Java。

如果您只是想尝试一下并熟悉 Elasticsearch,或者运行一小组节点,第一个选项完全可以胜任。后一个选项是 Elasticsearch 推荐的,以确保兼容性。

OpenJDK


要实现第一个选项,我们可以简单地运行 apt-get install openjdk-6-jre

Oracle Java


对于第二个选项,我们将按照 Elasticsearch 文档中的步骤进行。首先,我们必须添加一个包含 Oracle Java 运行时的存储库

sudo add-apt-repository ppa:webupd8team/java

然后我们必须运行 apt-get update 从这个新存储库中获取软件包信息。在这样做之后,我们可以安装 Oracle Java 运行时

sudo apt-get install oracle-java7-installer

在执行上述命令时,您将需要接受 Oracle 二进制许可协议。如果您不同意该许可协议,您可以选择安装 OpenJDK 运行时。

测试 Java 安装


您可以通过运行 java -version 来检查 Java 是否已安装。

这就是我们目前所需的所有依赖项,让我们开始获取并安装 Elasticsearch。

下载和安装


Elasticsearch 可以直接从它们的网站以 zip、tar.gz、deb 或 rpm 包的形式下载。您不需要提前这样做,因为我们将根据下文所需的文件进行下载。

安装


考虑到 Elasticsearch 提供的下载选项,我们有几种选择:

  • 从 zip 或 tar.gz 存档安装。
  • 从 deb 包安装。
  • 从 rpm 包安装。

最后一个选项不是 Ubuntu 的方式,因此我们将忽略它。

如果您只是想尝试一下 Elasticsearch,最好从 zip 或 tar.gz 存档安装。从任一选项安装只是简单地提供了运行 Elasticsearch 所需的二进制文件。从 deb 包安装完全安装了 Elasticsearch,并立即启动了服务器。这包括在 /etc/init.d/elasticsearch 安装一个启动 Elasticsearch 的 init 脚本,以便在启动时启动 Elasticsearch。如果您只是想尝试一下 Elasticsearch,我建议您从 zip 或 tar.gz 安装。这样,您可以在随意启动和停止服务器的同时发现 Elasticsearch。

从 zip 或 tar.gz 存档安装


zip 和 tar.gz 下载都包含了 Elasticsearch 的预编译二进制文件。

首先,在方便的地方下载源文件。解压存档后,您将能够直接从生成的目录运行二进制文件,因此您应该将它们放在每个您希望访问 Elasticsearch 的用户都可以访问的地方。在本教程中,我们将只是下载到当前用户的目录。如果您将它们下载到 /tmp,它们在重启 VPS 时可能会消失。如果这是您想要的,那就把下载放在那里吧。您可以通过运行 mktemp -d 快速在 /tmp 中创建一个新的临时目录。

无论如何,在继续之前,请确保您在要将 Elasticsearch 解压缩到的目录中。

下载存档


运行以下命令之一

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.zip

或者

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.tar.gz

第一个命令下载 zip 存档,第二个命令下载 tar.gz 存档。如果您下载了 zip 包,请确保您之前已经运行了 apt-get install unzip,然后运行

unzip elasticsearch-0.90.7.zip

或者,如果您下载了 tar.gz 包,运行

tar -xf elasticsearch-0.90.7.tar.gz

任一选项都将创建 elasticsearch-0.90.7 目录。进入该目录,输入 cd elasticsearch-0.90.7,您将在 bin 文件夹中找到二进制文件。

从 Debian 软件包安装


对于 Ubuntu 来说,最好的包是 deb 包。RPM 可以工作,但需要先转换,我们将不在此介绍如何转换。通过运行以下命令获取 deb 包

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.deb

通过运行以下命令直接从 Debian 包安装

dpkg -i elasticsearch-0.90.7.deb

这将导致 Elasticsearch 被正确安装在 /usr/share/elasticsearch。请记住,从 Debian 包安装还会在 /etc/init.d/elasticsearch 安装一个 init 脚本,该脚本在启动时启动 Elasticsearch 服务器。安装后服务器也将立即启动。

### 配置文件
---
如果从 zip 或 tar.gz 压缩包安装,配置文件可以在生成目录的 config 文件夹中找到。如果从 Debain 包安装,配置文件可以在 `/etc/elasticsearch` 中找到。
无论哪种情况,都会有两个主要的配置文件:**elasticsearch.yml** 和 **logging.yml**。第一个配置 Elasticsearch 服务器设置,后者则是 Elasticsearch 使用的日志记录器设置。
"elasticsearch.yml" 默认情况下只包含注释。
"logging.yml" 提供基本日志记录的配置。你可以在 **/var/log/elasticsearch** 中找到生成的日志。
### 移除 Elasticsearch 的公共访问
在继续之前,您需要配置 Elasticsearch,使其对公共互联网不可访问--Elasticsearch 没有内置的安全性,可以被任何可以访问 HTTP API 的人控制。这可以通过编辑 `elasticsearch.yml` 来完成。假设您使用的是包安装,请使用以下命令打开配置:
```bash
sudo vi /etc/elasticsearch/elasticsearch.yml

然后找到指定 network.bind_host 的行,取消注释并将值更改为 localhost,使其看起来像下面这样:

network.bind_host: localhost

然后在文件中的某处插入以下行,以禁用动态脚本:

script.disable_dynamic: true

保存并退出。现在重新启动 Elasticsearch 以使更改生效:

sudo service elasticsearch restart

我们将在后面介绍其他基本配置选项,但首先我们应该测试最基本的 Elasticsearch 安装。

测试您的 Elasticsearch 安装


您现在要么已经将 zip 或 tar.gz 压缩包解压到一个目录中,要么从 Debian 包安装了 Elasticsearch。无论哪种方式,您都可以使用 Elasticsearch 二进制文件,并且可以启动服务器。如果您使用的是 zip 或 tar.gz 压缩包,请确保您在生成的目录中。如果您使用 Debian 包安装,Elasticsearch 服务器应该已经在运行,因此您不需要像下面所示那样启动服务器。

让我们确保一切都正常工作。运行

./bin/elasticsearch

Elasticsearch 现在应该在端口 9200 上运行。请注意,Elasticsearch 需要一些时间才能完全启动,因此立即运行下面的 curl 命令可能会失败。它不应该超过十秒钟才能开始响应,因此如果下面的命令失败,可能有其他问题。

通过运行以下命令来确保服务器已启动

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

您应该会看到以下响应

{
  "ok" : true,
  "status" : 200,
  "name" : "Xavin",
  "version" : {
    "number" : "0.90.7",
    "build_hash" : "36897d07dadcb70886db7f149e645ed3d44eb5f2",
    "build_timestamp" : "2013-11-13T12:06:54Z",
    "build_snapshot" : false,
    "lucene_version" : "4.5.1"
  },
  "tagline" : "You Know, for Search"
}

如果您看到类似上面的响应,那么 Elasticsearch 正常工作。或者,您可以通过浏览器查询您的 Elasticsearch 安装,访问 :9200。您应该会看到与上面使用 curl 时相同的 JSON。

如果您通过 zip 或 tar.gz 压缩包安装,可以使用 RESTful API 停止服务器

curl -X POST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'

上面的命令也适用于使用 Debian 包安装 Elasticsearch,但您也可以使用 service elasticsearch stop 停止服务器。您可以使用相应的 service elasticsearch start 重新启动服务器。

使用 Elasticsearch


Elasticsearch 已经启动。现在,我们将介绍一些基本配置和用法。

基本配置


当通过 zip 或 tar.gz 压缩包安装时,配置文件可以在生成目录的 config 文件夹中找到。当通过 Debian 包安装时,配置文件可以在 /etc/elasticsearch/ 中找到。您将找到两个配置文件:elasticsearch.ymllogging.yml。第一个是通用的 Elasticsearch 配置。提供的文件只包含注释,因此将使用默认设置。阅读文件将提供对选项的良好概述,但我将在下面提供一些建议。这些设置都不是必需的。您可以在不执行以下任何操作的情况下使用 Elasticsearch,但这将是一个原始的开发环境。

“cluster.name” 设置了 Elasticsearch 提供自动发现的方法。这意味着如果同一网络上的一组 Elasticsearch 服务器共享相同的集群名称,它们将自动发现彼此。这就是扩展 Elasticsearch 的简单方法,但请注意,如果保留默认的集群名称,并且网络上有其他不受您控制的 Elasticsearch 服务器,您很可能会陷入糟糕的状态。

基本用法


让我们向我们的 Elasticsearch 安装添加一些数据。Elasticsearch 使用 RESTful API,响应通常的 CRUD 命令:创建(Create)、读取(Read)、更新(Update)和销毁(Destroy)。

要添加一个条目

curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'

您应该会看到以下响应

{"ok":true,"_index":"tutorial","_type":"helloworld","_id":"1","_version":1}

我们所做的是向 Elasticserach 服务器发送了一个 HTTP POST 请求。请求的 URI 是 /tutorial/helloworld/1。理解这里的参数很重要:

  • “tutorial” 是 Elasticsearch 中数据的索引。
  • “helloworld” 是类型。
  • “1” 是上述索引和类型下我们条目的 id。

如果您看到了上面 curl 命令的响应,我们现在可以查询数据

curl -X GET 'http://localhost:9200/tutorial/helloworld/1'

响应应该是

{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"exists":true, "_source" : { "message": "Hello World!" }}

成功!我们已经向 Elasticsearch 添加了数据并进行了查询。

需要注意的一点是,我们可以通过在查询中添加 ?pretty=true 来获得更好的输出。让我们试一试

curl -X GET 'http://localhost:9200/tutorial/helloworld/1?pretty=true'

响应应该是

{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 1,
  "exists" : true, "_source" : { "message": "Hello World!" }
}

这样更易读。如果您在 Elasticsearch 配置文件中设置了 format=yaml,输出也将被漂亮地打印,而无需添加查询字符串。

结论


我们现在已经安装、配置并开始使用 Elasticsearch。由于它响应基本的 RESTful API,因此现在很容易从您的应用程序开始使用 Elasticsearch 添加和查询数据。


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
10天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
57 2
|
10天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
744 3
|
4天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
25 4
Linux系统之Ubuntu安装cockpit管理工具
|
9天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
42 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
9天前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
14 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
5天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
17 1
|
9天前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
16 2
|
10天前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
50 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
2月前
|
存储 Ubuntu Go
在Ubuntu 16.04上安装Go 1.6的方法
在Ubuntu 16.04上安装Go 1.6的方法
37 1
|
2月前
|
存储 Ubuntu Go
在Ubuntu 18.04上安装Go的方法
在Ubuntu 18.04上安装Go的方法
36 1