# Windows 环境下安装ES

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/current/windows.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/windows.html)

译文链接 : [http://apache.wiki/pages/editpage.action?pageId=4882732](http://apache.wiki/pages/editpage.action?pageId=4882732)

贡献者 : @漫步

## Windows 环境下安装ES

Elasticsearch可以在Windows中使用安装`.zip`包。这配备了一个`elasticsearch-service.bat`命令，它会安装Elasticsearch来作为服务运行。

Elasticsearch的最新稳定版本可以在上找到 [下载Elasticsearch](https://www.elastic.co/downloads/elasticsearch)页面。其它版本可以在上找到 [过去的版本页面](https://www.elastic.co/downloads/past-releases)。

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

Elasticsearch需要Java 8或更高版本。使用 [Oracle官方分发](http://www.oracle.com/technetwork/java/javase/downloads/index.html) 或作为开放源代码的分布的[OpenJDK](http://openjdk.java.net/)。

## 下载并安装`.zip`包

下载`.zip`的Elasticsearch V5.0.1档案来源：[https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.1.zip](https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.1.zip)

你最喜欢的解压缩工具解压。这将创建一个文件夹叫 `elasticsearch-5.0.1`，我们称其为 `%ES_HOME%`。在终端窗口，`cd``%ES_HOME%`目录，例如：

```
cd C：\ elasticsearch-5.0.1
```

## 在命令行中运行Elasticsearch

Elasticsearch可以从命令行启动，如下所示：

```
.\bin\elasticsearch
```

默认情况下，Elasticsearch在前台运行，打印其日志`STDOUT`，并可以按停止`Ctrl-C`。

## 在命令行配置Elasticsearch

Elasticsearch加载从它的配置`%ES_HOME%/config/elasticsearch.yml` 默认文件。这个配置文件的格式说明[_配置Elasticsearch_](https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html "配置Elasticsearch")。

可以在配置文件中指定的任何设置，也可以在命令行上指定，使用`-E`的语法如下：

```
./bin/elasticsearch -Ecluster.name=my_cluster -Enode.name=node_1
```

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

包含空格的值必须用引号括起来。例如`-Epath.logs="C:\My Logs\logs"`。

![小费](img/b1fda39d66362520c57fb0bebf6575f8.jpg)

通常情况下，任何集群范围的设置（例如`[cluster.name](http://cluster.name)`）应该被加入到`elasticsearch.yml`配置文件，而任何特定于节点的设置，例如`[node.name](http://node.name)`可以在命令行上被指定。

## 检查Elasticsearch运行

您可以测试你的Elasticsearch节点通过发送一个HTTP请求到端口上运行`9200`的`localhost`：

```
GET /
```

返回值，如下:

```
{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "5.0.1",
    "build_hash" : "f27399d",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "6.2.1"
  },
  "tagline" : "You Know, for Search"
}
```

### 安装Elasticsearch作为Windows服务

Elasticsearch可以作为服务安装在后台运行，或在启动时自动启动，无需任何用户交互。这可以通过实现`elasticsearch-service.bat`的脚本`bin\`，使人们安装，删除，管理或配置服务和潜在的启动和停止服务文件夹中，全部由命令行。

```
c:\elasticsearch-5.0.1\bin>elasticsearch-service

Usage: elasticsearch-service.bat install|remove|start|stop|manager [SERVICE_ID]
```

该脚本需要一个参数（要执行的命令），后跟一个可选一表示服务ID（用于安装多个Elasticsearch服务时）。

可用的命令如下：

| `install` | 安装Elasticsearch作为服务 |
| `remove` | 删除已安装的Elasticsearch服务（并停止该服务，如果启动） |
| `start` | 启动Elasticsearch服务（如果安装） |
| `stop` | 停止Elasticsearch服务（如果已启动） |
| `manager` | 启动GUI管理安装服务 |

根据现有的JDK / JRE（通过设置的体系结构`JAVA_HOME`），相应的64位（x64）或32位（x86）的服务将被安装。此信息是安装过程中提供：

```
c:\elasticsearch-5.0.1\bin>elasticsearch-service install
Installing service      :  "elasticsearch-service-x64"
Using JAVA_HOME (64-bit):  "c:\jvm\jdk1.8"
The service 'elasticsearch-service-x64' has been installed.
```

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

该服务安装程序要求线程堆栈大小设置在jvm.options进行配置**之前**安装的服务。在32位的Windows，你应该添加`-Xss320k`到jvm.options文件，并在64位Windows您应该添加`-Xss1m`到jvm.options文件。

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

而JRE可用于Elasticsearch服务，由于其使用的客户机虚拟机（而不是服务器JVM这对于长期运行的应用提供了更好的性能）其使用不鼓励和一个将发出警告。

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

升级（或降级）的JVM版本不需要重新安装服务。但是，跨JVM升级类型（如JRE与SE）是不支持，而且确实需要的服务，重新安装。

### 设置定制服务

该Elasticsearch服务可以在安装之前通过设置以下环境变量（可以使用配置[set命令](https://technet.microsoft.com/en-us/library/cc754250(v=ws.10).aspx)在命令行，或通过`System Properties-&gt;Environment Variables`GUI）。

| `SERVICE_ID` | 的唯一标识符的服务。有用的，如果同一计算机上安装多个实例。默认为`elasticsearch-service-x86`（在32位Windows）或`elasticsearch-service-x64`（在64位Windows）。 |
| `SERVICE_USERNAME` | 用户身份运行，默认为本地系统帐户。 |
| `SERVICE_PASSWORD` | 的密码中指定的用户`%SERVICE_USERNAME%`。 |
| `SERVICE_DISPLAY_NAME` | 该服务的名称。默认为`Elasticsearch &lt;version&gt; %SERVICE_ID%`。 |
| `SERVICE_DESCRIPTION` | 该服务的描述。默认为`Elasticsearch &lt;version&gt; Windows Service - [https://elastic.co](https://elastic.co)`。 |
| `JAVA_HOME` | 所需的JVM的安装目录下运行该服务。 |
| `LOG_DIR` | 日志目录，默认为`%ES_HOME%\logs`。 |
| `DATA_DIR` | Data目录，默认为`%ES_HOME%\data`。 |
| `CONF_DIR` | 配置文件目录（其中必须包括`elasticsearch.yml` 和`log4j2.properties`文件），默认为`%ES_HOME%\conf`。 |
| `ES_JAVA_OPTS` | 任何额外的JVM系统属性，你可能要应用。 |
| `ES_START_TYPE` | 启动模式的服务。可以是`auto`或者`manual`（默认）。 |
| `ES_STOP_TIMEOUT` | 以秒procrun服务等待超时正常退出。默认为`0`。 |

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

在其核心，`elasticsearch-service.bat`依赖于[Apache的百科全书守护](http://commons.apache.org/proper/commons-daemon/)工程安装服务。该服务在安装之前设置环境变量被复制，并会在服务生命周期中使用。这意味着在安装后对他们所做的任何更改将不被拾起，除非该服务被重新安装。

![注意](img/66451d8bfad3b8dc5776cc1eafdf57b6.jpg)

在Windows中，[堆大小](https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html "通过jvm.options设置JVM堆大小")可以被配置为用于从所述命令行运行Elasticsearch时，或安装Elasticsearch作为首次一个服务时的任何其他Elasticsearch安装。要调整堆大小已安装的服务，使用服务管理器：`bin\elasticsearch-service.bat manager`。

使用管理器GUI也可以配置服务，它已经使用管理GUI（安装后elasticsearch-service-mgr.exe），它提供了洞察安装的服务，包括其状态，启动类型，JVM启动和停止除其他事项外设置。简单地调用elasticsearch-service.bat manager在命令行会打开管理器窗口：

![](/download/attachments/4882732/image2016-11-25%2015%3A33%3A2.png?version=1&modificationDate=1480059182000&api=v2)

通过管理程序的GUI做的大多数更改（如JVM设置），将要求服务重新启动才能生效。

### 目录结构`.zip` 分析

该`.zip`包是完全独立的。所有的文件和目录，默认情况下，包含在`%ES_HOME%` -解压缩存档时创建的目录。

这是非常方便，因为你没有创建任何目录开始使用Elasticsearch和卸载Elasticsearch是去掉了容易`%ES_HOME%`目录。不过，最好是改变config目录，数据目录和日志目录的默认位置，这样你就不会删除以后重要的数据。

| 类型 | 描述 | 默认位置 | 设置 |
| --- | --- | --- | --- |
| **home
** | Elasticsearch主目录或 `%ES_HOME%` | 目录由解包归档创建 |   |
| **bin
** | 二进制脚本包括`elasticsearch`启动一个节点，并`elasticsearch-plugin`安装插件 | `%ES_HOME%\bin` |   |
| **conf
** | 配置文件，包括 `elasticsearch.yml` | `%ES_HOME%\config` | `path.conf` |
| **data
** | 节点上分配的各索引/碎片的数据文件的位置。可以容纳多个位置。 | `%ES_HOME%\data` | `path.data` |
| **logs
** | 日志文件的位置。 | `%ES_HOME%\logs` | `path.logs` |
| **plugins
** | 插件文件的位置。每一个插件将被包含在一个子目录。 | `%ES_HOME%\plugins` |   |
| **repo
** | 共享文件系统存储库位置。可以容纳多个位置。文件系统存储库可以放在这里指定的任意目录中的任何子目录。 | 未配置 | `path.repo` |
| **script
** | 脚本文件位置。 | `%ES_HOME%\scripts` | `path.scripts` |

## 下一步

现在，您有一个测试环境Elasticsearch成立。开始之前严重的发展或进入生产与Elasticsearch，你需要做一些额外的设置：

*   了解如何[配置Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html "配置Elasticsearch")。
*   配置[重要Elasticsearch设置](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html "重要Elasticsearch配置")。
*   配置[重要的系统设置](https://www.elastic.co/guide/en/elasticsearch/reference/current/system-config.html "重要的系统配置")。