跳到主要内容

启动并运行 Elasticsearch

为了试用 Elasticsearch,你可以在 Elasticsearch 服务(Elasticsearch Service)中创建托管部署或者在自己的 Linux、macOS 或者 Windows 机器上设置一个多节点 Elasticsearch 集群。

在 Elastic Cloud 上运行 Elasticsearch

当你在 Elasticsearch 服务中创建部署时,这个服务提供一个三节点的 Elasticsearch 集群、Kibana 以及 APM。

为了创建部署:

  1. 注册一个免费的试用并验证你的电子邮箱地址。
  2. 为你的账户设置密码。
  3. 点击创建部署。

一旦你创建了一个部署,你就能索引一些文档

在 Linux、macOS 或 Windows 本地运行 Elasticsearch

当你在 Elasticsearch 服务中创建一个部署时,将会自动提供一个主节点和两个数据节点。通过用 tar 或者 zip 压缩包安装,你可以在本地启动多个 Elasticsearch 实例,以查看多节点集群的行为。

在本地运行一个三节点 Elasticsearch 集群:

  1. 为你的操作系统下载 Elasticsearch 压缩包:

Linux: elasticsearch-7.11.1-linux-x86_64.tar.gz

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.1-linux-x86_64.tar.gz

macOS: elasticsearch-7.11.1-darwin-x86_64.tar.gz

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.1-darwin-x86_64.tar.gz

Windows: elasticsearch-7.11.1-windows-x86_64.zip

  1. 解压文件:

Linux:

tar -xvf elasticsearch-7.11.1-linux-x86_64.tar.gz

macOS:

tar -xvf elasticsearch-7.11.1-darwin-x86_64.tar.gz

Windows PowerShell:

Expand-Archive elasticsearch-7.11.1-windows-x86_64.zip
  1. bin 目录中启动 Elasticsearch:

Linux and macOS:

cd elasticsearch-7.11.1/bin
./elasticsearch

Windows:

cd elasticsearch-7.11.1\bin
.\elasticsearch.bat

现在你就运行起了一个单节点 Elasticsearch 集群!

  1. 再启动两个 Elasticsearch 实例,你就能看到典型的多节点集群行为。你需要为每个节点指定唯一的数据和日志路径。

Linux and macOS:

./elasticsearch -Epath.data=data2 -Epath.logs=log2
./elasticsearch -Epath.data=data3 -Epath.logs=log3

Windows:

.\elasticsearch.bat -E path.data=data2 -E path.logs=log2
.\elasticsearch.bat -E path.data=data3 -E path.logs=log3

额外的节点将被分配唯一的 ID。由于你在本地运行的所有三节点,他们将自动与第一个节点加入集群。

  1. 使用 cat health API 验证你的三节点集群是否正运行。这个 cat API 以比原生 JSON 更易读的格式返回关于集群和索引的信息。

你可以通过 Elasticsearch REST API 提交 HTTP 请求,直接与集群交互。如果你安装和运行了 Kibana,你也可以打开 Kibana,并通过开发控制台(Dev Console)提交请求。

提示

当你准备在自己的应用程序中开始使用 Elasticsearch 时,你可能想查看Elasticsearch 语言客户端

GET /_cat/health?v=true

响应应该指示 Elasticsearch 集群的状态是绿色,且它有三个节点:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1565052807 00:53:27 elasticsearch green 3 3 6 3 0 0 0 0 - 100.0%
提示

如果仅有一个 Elasticsearch 单实例,集群状态会保持为黄色。一个单节点集群是功能完整的,但数据不能被复制到另一个节点以提供弹性。集群状态为绿色时,副本分片必定可用。如果集群状态为红色,某些数据不可用。

使用 cURL 命令与 Elasticsearch 交互

本指南中的大部分示例,允许你复制合适的 cURL 命令,并从命令行中向本地 Elasticsearch 实例提交请求。

对 Elasticsearch 的请求包含与任何 HTTP 请求相同的部分:

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

这个示例使用以下变量:

<VERB>

合适的 HTTP 方法或操作。例如,GETPOSTPUTHEADDELETE

<PROTOCOL>

httphttps。如果你在 Elasticsearch 之前有 HTTPS 代理,或者你使用的 Elasticsearch 安全特性去加密 HTTP 通信,使用后者。

<HOST>

Elasticsearch 集群的任意节点主机名。或者对本地机器上的节点使用 localhost

<PORT>

运行 Elasticsearch HTTP服务的端口,默认为 9200

<PATH>

API路径,可以包含多部分,比如 _cluster/stats_nodes/stats/jvm

<QUERY_STRING>

一些可选的查询字符串参数。比如,?pretty 将打印 JSON 响应以使其更易阅读。

<BODY>

JSON 编码的请求体(如果必须)。

如果启用了 Elasticsearch 安全特性,你必须提供用于认证运行 API 的有效用户名(以及密码)。例如,使用 -u--u 的 cURL 命令参数。有关运行每个 API 需要的安全权限的详情,参看 REST API

Elasticsearch 对每个 API 请求响应 HTTP 状态码,如 200 ok。除了 HEAD 请求外,它还会返回一个 JSON 编码的响应体。

其他安装方式

从压缩文件安装 Elasticsearch,使你可能轻松地在本地安装和运行多个实例,然后你可以去尝试。为了运行一个单实例,你可以在 Docker 容器中运行 Elasticsearch,可以在 Linux 上通过 DEBRPM 包、在 macOS 上通过 Homebrew,或者在 Windows 上用 MSI 包安装 Elasticsearch。查看安装 Elasticsearch 获取更多信息。

原文链接