如何在 Ubuntu VPS 上安装 Elasticsearch

金钱(警告)

** 状态:** 被贬值

如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议升级或迁移到支持的 Ubuntu 版本:

** 原因:** Ubuntu 12.04 已于 2017 年 4 月 28 日到期(EOL)并且不再收到安全补丁或更新。

See instead: This guide may still be useful as a reference, but may not work on other Ubuntu releases. If available, we strongly recommend using a guide written for the version of Ubuntu you are using. You can use the search functionality at the top of the page to find a more recent version. <$> Elasticsearch是分布式的,RESTful搜索和分析的平台。它可以根据需要扩展,你可以立即开始使用它在单一的DigitalOcean dropplet上。在本教程中,我们将下载,安装,并开始在Ubuntu上使用Elasticsearch。提供的步骤目前已在Ubuntu 12.04.364和Ubuntu 13.10 x64上测试。

依赖性


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

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

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

第一个选项是完美的,如果你只是想玩和熟悉Elasticsearch或运行一个小组节点。

开放


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

关于Oracle Java


对于第二个选项,我们将遵循 Elasticsearch 文档中的步骤. 首先,我们必须添加包含 Oracle Java 运行时间的存储库

1sudo add-apt-repository ppa:webupd8team/java

然后我们必须运行apt-get update来从这个新的存储库中提取包信息. 这样做后,我们可以安装Oracle Java Runtime

1sudo 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的方式,所以我们会忽略它。

安装从 zip 或 tar.gz 档案是最好的,如果你只是想玩一些 Elasticsearch. 安装从这些选项中的任何一个简单地使运行 Elasticsearch 所需的二进制可用。 安装从 deb 包完全安装 Elasticsearch 并立即启动服务器运行。 这包括在 `/etc/init.d/elasticsearch 上安装 init 脚本,这将启动 Elasticsearch 在启动时。

从 zip 或 tar.gz 档案中安装


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

首先,下载源在某个方便的地方. 提取档案后,您将能够直接从结果目录中运行二进制文件,所以您应该将它们放置在任何用户想要访问Elasticsearch的可访问的地方。 对于本教程,我们只需下载到当前用户目录。 如果您将它们下载到/tmp,它们可能会在重新启动VPS时消失。 如果这是您想要的,继续下载并放置在那里。

在任何情况下,请确保您在 Elasticsearch 提取到想要提取的目录之前继续。

下载档案


跑步也

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

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

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

1unzip elasticsearch-0.90.7.zip

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

1tar -xf elasticsearch-0.90.7.tar.gz

任何一个选项都会创建目录 elasticsearch-0.90.7. 通过输入cd elasticsearch-0.90.7来更改该目录,你会在bin文件夹中找到二进制。

从 Debian 软件包中安装


对于Ubuntu来说,下载的最佳软件包是 Deb 软件包. RPM 可以工作,但它需要先转换,我们不会在这里这样做。

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

直接从 Debian 包安装是通过运行

1dpkg -i elasticsearch-0.90.7.deb

请记住,从 Debian 软件包中安装也会在 `/etc/init.d/elasticsearch 中安装 init 脚本,该脚本会启动 Elasticsearch 服务器在启动时运行。

配置文件


如果从 zip 或 tar.gz 档案中安装,则配置文件可在结果目录的配置文件夹中找到. 如果从 Debain 包安装,则配置文件可在 `/etc/elasticsearch 中找到。

在这两种情况下,将有两个主要的配置文件: elasticsearch.yml 和 ** logging.yml** . 第一种配置 Elasticsearch 服务器设置,而后者,毫不奇怪,使用 Elasticsearch 的日志器设置。

elasticsearch.yml将默认情况下,只包含评论。

logging.yml提供了基本的日志配置,您可以在 /var/log/elasticsearch 中找到结果的日志。

删除 Elasticsearch 公共访问

在继续之前,您需要配置 Elasticsearch 以便无法访问公共互联网 - Elasticsearch 没有内置的安全性,可以由任何可以访问 HTTP API 的用户控制。

1sudo vi /etc/elasticsearch/elasticsearch.yml

然后找到指定network.bind_host的行,然后放弃评论并将值更改为localhost,以便它看起来如下:

1network.bind_host: localhost

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

1script.disable_dynamic: true

现在重新启动 Elasticsearch 以实施更改:

1sudo service elasticsearch restart

稍后我们将讨论其他基本配置选项,但首先我们应该测试最基本的 Elasticsearch 安装。

测试您的 Elasticsearch 安装


你现在要么将 zip 或 tar.gz 档案提取到一个目录,要么从 Debian 包中安装了 Elasticsearch. 无论如何,你都有 Elasticsearch 二进制,可以启动服务器。 如果你使用了 zip 或 tar.gz 档案,请确保你在结果的目录中。

让我们确保一切都起作用。

1./bin/elasticsearch

Elasticsearch 现在应该在端口 9200 上运行。请注意,Elasticsearch 需要一段时间才能完全启动,因此运行下面的弯曲命令可能会立即失败。

确保服务器通过运行启动

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

你应该看到下面的答案

 1{
 2  "ok" : true,
 3  "status" : 200,
 4  "name" : "Xavin",
 5  "version" : {
 6    "number" : "0.90.7",
 7    "build_hash" : "36897d07dadcb70886db7f149e645ed3d44eb5f2",
 8    "build_timestamp" : "2013-11-13T12:06:54Z",
 9    "build_snapshot" : false,
10    "lucene_version" : "4.5.1"
11  },
12  "tagline" : "You Know, for Search"
13}

如果您看到一个类似于上述的响应,Elasticsearch 正在正常工作. 或者,您可以通过访问 :9200 来查询您的 Elasticsearch 安装。

如果您安装了 zip 或 tar.gz 档案,则可以使用 RESTful API 阻止服务器。

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

上面的命令在使用 Debian 套件安装 Elasticsearch 时也是有效的,但您也可以使用服务 elasticsearch 停止来停止服务器。

使用 Elasticsearch


Elasticsearch正在运行,现在,我们将讨论一些基本的配置和使用。

基本配置


当通过 zip 或 tar.gz 档案进行安装时,配置文件会在结果目录内部的 config 文件夹中找到。当通过 Debian 包安装时,配置文件可以在 /etc/elasticsearch/ 中找到。你会发现的两个配置文件是 elasticsearch.yml 和 ** logging.yml** 。第一个是一般的 Elasticsearch 配置。提供的文件只包含评论,因此使用了默认设置。通过文件阅读将提供选项的良好概述,但我将在下面做一些建议。

cluster.name 设置是 Elasticsearch 提供自动发现的方法,这意味着如果一组在同一网络上的 Elasticsearch 服务器共享相同的集群名称,它们会自动发现对方。

基本使用


Elasticsearch 使用 RESTful API,该 API 响应常见的 CRUD 命令:创建、阅读、更新和摧毁。

添加一个入口

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

你应该看到下面的答案

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

我们所做的就是将 HTTP POST 请求发送到 Elasticserach 服务器. 请求的 URI 是 /tutorial/helloworld/1

*教程是Elasticsearch中的数据索引。 *helloworld是类型。 *1是我们在上面的索引和类型下输入的ID。

如果您看到对 curl 命令的上述答案,我们现在可以查询数据。

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

该应与

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

成功! 我们在 Elasticsearch 中添加并查询了数据。

值得注意的是,我们可以通过将?pretty=true添加到查询中来获得更好的输出。

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

谁应该回答与

1{
2  "_index" : "tutorial",
3  "_type" : "helloworld",
4  "_id" : "1",
5  "_version" : 1,
6  "exists" : true, "_source" : { "message": "Hello World!" }
7}

输出也将非常打印,而无需附加查询字符串,如果您在 Elasticsearch 配置文件中设置了 format=yaml

结论


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

Submitted by: ckendell
Published At
Categories with 技术
comments powered by Disqus