金钱(警告)
** 状态:** 被贬值
如果您目前正在运行运行 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 正在正常工作. 或者,您可以通过访问
如果您安装了 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 开始添加和查询数据。