如何在Ubuntu的VPS安装Elasticsearch

Elasticsearch是分布式,基于REST的搜索和分析平台。 它可以根据需要进行扩展,您可以立即开始在单个DigitalOceanDroplet上使用它。 在本教程中,我们将在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已运行安装java -version

这就是我们现在需要的所有依赖项,所以让我们开始获取和安装Elasticsearch。

下载并安装

Elasticsearch可以直接从网站上下载的ZIP,tar.gz的,DEB或RPM软件包。 你不需要提前这样做,因为我们将在下面的文本中下载我们需要的文件,因为我们需要它们。

安装

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

  • 从zip或tar.gz归档文件安装。
  • 从deb包安装。
  • 从rpm包安装。

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

从zip或tar.gz存档安装是最好的,如果你只是想用Elasticsearch玩一会儿。 从这些选项中的任何一个安装只是提供运行Elasticsearch所需的二进制文件。 从deb软件包安装完全安装Elasticsearch并启动服务器立即运行。 这包括安装在init脚本/etc/init.d/elasticsearch它在启动时启动Elasticsearch。 如果你只是想玩Elasticsearch,我建议从zip或tar.gz安装。 这样,您可以随时启动和停止服务器来发现Elasticsearch。

从zip或tar.gz存档安装

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

首先,下载源码在某个方便。 提取归档文件后,您可以直接从结果目录运行二进制文件,因此您应该将它们放在每个想要访问Elasticsearch的用户可访问的位置。 对于本教程,我们只是下载到当前用户的目录。 如果你将它们下载到/tmp ,他们很可能当您重新启动您的VPS消失。 如果这是你想要的,继续下载。 您可以创建一个新的临时目录/tmp运行快速mktemp -d

无论如何,在继续之前,请确保您位于要提取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存档。 如果你下载的压缩包,请确保您以前已经运行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软件包安装也安装在init脚本/etc/init.d/elasticsearch启动开机运行Elasticsearch服务器。 服务器也将在安装后立即启动。

配置文件

如果从zip或tar.gz归档安装,则在生成的目录的config文件夹中找到配置文件。 如果从包的Debain安装,配置文件被发现在/etc/elasticsearch

在这两种情况下,将有两个主要的配置文件:elasticsearch.ymllogging.yml。 第一个配置Elasticsearch服务器设置,而后者,不出所料的是,Elasticsearch使用的记录器设置。

“elasticsearch.yml”将默认情况下只包含注释。

“logging.yml”提供了基本日志记录的配置。 你可以找到在/ var所生成的日志/日志/ elasticsearch。

删除Elasticsearch公共访问

在继续之前,您将需要配置Elasticsearch,使其不能访问公共Internet - Elasticsearch没有内置的安全性,并且可以由任何可以访问HTTP API的人控制。 这可以通过编辑来完成elasticsearch.yml 假定您随包一起安装,请使用以下命令打开配置:

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命令:创建,读取,更新和销毁。

添加条目

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

您应该会看到以下响应

{“OK”:真实的“ 指数”:“教程”,“类型”:“HelloWorld”的,“ID”:“1”,“版本”:1}

我们所做的是向Elasticserach服务器发送HTTP POST请求。 请求的URI是/教程/的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!" }
}

这是更可读的。 输出也将被美化打印,而无需如果设置追加查询字符串format=yaml的Elasticsearch配置文件英寸

结论

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

提交者:ckendell
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏