原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/getting-started-install.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/getting-started-install.html

安装并运行 Elasticsearch

要用 Elasticearch 做测试,你可以在 ElasticSearch Service 上创建一个 托管的部署 ,或者在你自己的 Linux、MacOS 或 Windows 机器上设置一个多节点 Elasticearch 集群。

在 Elastic 云上运行 Elasticsearch

当你在 ElasticSearch Service 上创建部署时,该服务提供了一个三节点的 Elasticearch 集群以及 Kibana 和 APM。

要创建部署,执行以下操作:

  1. 注册 免费试用 并验证你的 email 地址。
  2. 给你的账号设置密码。
  3. 点击 创建部署 (Create Deployment).

一旦创建好了部署, 就可以去 索引文档

在本地 Linux, macOS, 或 Windows 上运行 Elasticsearch

在 ElasticSearch Service 上创建部署时,将自动预分配一个主节点和两个数据节点。 通过从 tar 或 zip 归档文件安装,你可以在本地启动多个 Elasticsearch 实例,以查看多节点集群的行为。

要本地安装一个 3 个节点的 Elasticsearch 集群,执行以下操作:

  1. 下载你的操作系统对应的 Elasticsearch 归档文件:

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

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

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

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

    Windows: elasticsearch-7.7.1-windows-x86_64.zip

  2. 解压文件:

    Linux:

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

    macOS:

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

    Windows PowerShell:

    Expand-Archive elasticsearch-7.7.1-windows-x86_64.zip
  3. bin 目录启动 Elasticsearch :

    Linux and macOS:

    cd elasticsearch-7.7.1/bin
    ./elasticsearch

    Windows:

    cd elasticsearch-7.7.1\bin
    .\elasticsearch.bat

    现在你有了一个单节点的 Elasticearch 集群启动并运行!

  4. 再启动两个 Elasticearch 实例,这样就可以看到一个典型的多节点集群是如何工作的。 你需要为每个节点指定唯一的数据和日志路径。

    Linux 和 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。 因为你是在本地运行所有三个节点,所以它们将自动与第一个节点连接到集群中。

  5. 使用 cat health API 验证三节点集群是否正在运行。 cat API 以一种比原始JSON更容易阅读的格式返回关于集群和索引的信息。

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

    当你准备在自己的应用程序中开始使用 Elasticearch 时,你会想要查看 ElasticSearch 语言客户端

    GET /_cat/health?v

    响应应该表明 elasticsearch 集群的状态是 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%

    如果只运行了一个 Elasticearch 实例,则集群状态将保持为 yellow。 单节点的集群功能是齐全的,但不能将数据复制到另一个节点以提供弹性。 必须有副本碎片,才能使集群状态变为 green。 如果集群的状态时 red, 表示部分数据不可用。

用 cURL 命令与 Elasticearch 对话

本指南中的大多数示例都允许你复制适当的 cURL 命令,并从命令行将请求提交到本地的 Elasticsearch 实例。

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

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

这个示例中使用了如下的几个变量:

<VERB>
适当的HTTP方法或动词。比如,GET, POST, PUT, HEAD, 或 DELETE.
<PROTOCOL>
http 或者 https。 如果在 Elasticearch 前面有 HTTPS 代理,或者使用 Elasticsearch 安全特性加密 HTTP 通信,则使用后者。
<HOST>
Elasticsearch 集群中任何一个节点的主机名(hostname)。 本地计算机上的节点也可以使用 localhost
<PORT>
运行 ElasticSearch HTTP 服务的端口,默认为 9200
<PATH>
API 终端,可以包含多个组件,如 _cluster/stats_nodes/stats/jvm.
<QUERY_STRING>
任何可选的查询-字符串参数。 例如,?pretty美观的打印 (pretty-print) JSON 响应以使其更易于阅读。
<BODY>
一个 JSON 编码的请求体(如果需要)。

如果启用了 Elasticsearch 安全特性,则还必须提供一个具有运行 API 权限的有效用户名(和密码)。 例如,使用 cURL 命令的 -u--u 参数。 有关运行每个 API 需要哪些安全权限的详细信息,请参阅 REST APIs

ElasticSearch 使用 HTTP 状态代码响应每个 API 请求,比如 200 OK。 除了 HEAD 请求之外,它还返回一个 JSON 编码的响应体。

其他安装选项

从归档文件安装 Elasticsearch 使你能够轻松地在本地安装并运行多个实例,以便进行尝试。 要运行单个实例,你可以在 Docker 容器中运行 Elasticearch,在 Linux 上使用 DEB 或 RPM 包安装 Elasticearch,在 MacOS 上使用 Homebreer 安装,或者在 Windows 上使用 MSI 包安装程序安装。 更多信息参考 安装 Elasticsearch