# 用RPM安装Elasticsearch

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

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

贡献者 : @漫步

## 用RPM安装Elasticsearch

对于Elasticsearch的RPM，可以[从我们的网站下载](https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html#install-rpm "下载并手动安装RPM") 或从我们的 [RPM库](https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html#rpm-repo "从RPM安装库")。它可以用于任何基于RPM的系统，如OpenSuSE的，SLES，Centos的，红帽和Oracle企业上安装Elasticsearch。

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

RPM安装不支持旧版本的RPM，比如SLES 11和CentOS 5分布请参阅[与安装Elasticsearch`.zip`或`.tar.gz`](https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html "与.ZIP或.tar.gz安装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/)。

## 导入Elasticsearch PGP密钥

我们签署所有我们与Elasticsearch签名密钥包（PGP密钥 [D88E42B4](https://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4)，可从[https://pgp.mit.edu](https://pgp.mit.edu/)）与指纹识别：

```
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
```

下载并安装该公用签名密钥：

```
转--import https://artifacts.elastic.co/GPG-KEY-elasticsearch
```

## 从RPM库中安装

创建一个名为文件`elasticsearch.repo`在`/etc/yum.repos.d/`目录基于RedHat分发，或`/etc/zypp/repos.d/`基于OpenSuSE的发行目录，包含：

```
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
```

资料库就可以使用了。现在，您可以用下面的命令之一安装Elasticsearch：

```
sudo yum install elasticsearch 
sudo dnf install elasticsearch 
sudo zypper install elasticsearch 
```

| [![](img/24cb6cd12df1a0cbdb39ab06379bd3de.jpg)](https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html#CO4-1) | 使用`yum`在CentOS和旧的基于Red Hat分发。 |
| [![](img/c7d178c0e490b3b3fa632f5c43fa27ff.jpg)](https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html#CO4-2) | 使用`dnf`在Fedora和其他新的Red Hat分发。 |
| [![](img/4eebc14898339f6b58322f85335942c7.jpg)](https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html#CO4-3) | 使用`zypper`基于分布的OpenSUSE |

## 手动下载并安装RPM

对于Elastisearch V5.0.1的RPM可以从网站上下载并安装如下：

```
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.1.rpm
sha1sum elasticsearch-5.0.1.rpm 
sudo rpm --install elasticsearch-5.0.1.rpm
```

| [![](img/24cb6cd12df1a0cbdb39ab06379bd3de.jpg)](https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html#CO5-1) | 通过比较产生的SHA `sha1sum`或`shasum`与 [published SHA](https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.1.rpm.sha1). |

### SysV `init` vs `systemd`

Elasticsearch是不是在安装后自动启动。如何启动和停止Elasticsearch取决于你的系统是否使用的SysV`init`或 `systemd`（较新发行版中使用）。你可以说这是一个用来运行以下命令：

```
PS -p 1
```

### SysV 运行Elasticsearch `init`

使用`chkconfig`命令来配置Elasticsearch时自动启动系统启动：

```
sudo chkconfig --add elasticsearch
```

Elasticsearch可以开始，并使用停止`service`命令：

```
sudo -i service elasticsearch start
sudo -i service elasticsearch stop
```

如果Elasticsearch无法启动以任何理由，将打印未能STDOUT的原因。日志中可以找到的文件`/var/log/elasticsearch/`

### 运行Elasticsearch `systemd`

要配置Elasticsearch时自动启动系统启动，运行以下命令：

```
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
```

Elasticsearch可以启动和停止，如下所示：

```
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service
```

这些命令不提供反馈，Elasticsearch是否成功没有启动。相反，该信息将被写入在位于在日志文件中`/var/log/elasticsearch/`。

默认情况下，Elasticsearch服务不记录在信息`systemd` 杂志。要启用`journalctl`日志记录，该`--quiet`选项必须从被删除`ExecStart`的命令行`elasticsearch.service`文件。

当`systemd`启用了日志记录，日志信息的使用可用`journalctl`的命令：

查看 journal:

```
sudo journalctl -f
```

要列出elasticsearch服务日记帐分录：

```
sudo journalctl --unit elasticsearch
```

要列出从给定的时间启动elasticsearch服务日记帐分录：

```
sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"
```

检查 `man journalctl`或[https://www.freedesktop.org/software/systemd/man/journalctl.html](https://www.freedesktop.org/software/systemd/man/journalctl.html)更多的命令行选项。

## 检查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

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

Debian软件包也有一个系统配置文件（`/etc/default/elasticsearch`），它允许你设置以下参数：

| `ES_USER` | 用户运行的，默认为`elasticsearch`。 |
| `ES_GROUP` | 本组运行的，默认为`elasticsearch`。 |
| `JAVA_HOME` | 设置定制的Java路径中使用。 |
| `MAX_OPEN_FILES` | 打开文件，默认最大数量`65536`。 |
| `MAX_LOCKED_MEMORY` | 最大锁定内存大小。设置为`unlimited`，如果你使用 `bootstrap.memory_lock`的elasticsearch.yml选项。 |
| `MAX_MAP_COUNT` | 的过程中可能出现内存映射区域的最大数量。如果你使用`mmapfs` 的索引存储类型，确保此项设置为高值。欲了解更多信息，请查看 [Linux内核文件](https://github.com/torvalds/linux/blob/master/Documentation/sysctl/vm.txt) 有关`max_map_count`。这是通过设置`sysctl`在开始之前elasticsearch。默认为`262144`。 |
| `LOG_DIR` | 日志目录，默认为`/var/log/elasticsearch`。 |
| `DATA_DIR` | Data目录，默认为`/var/lib/elasticsearch`。 |
| `CONF_DIR` | 配置文件目录（其中必须包括`elasticsearch.yml` 和`log4j2.properties`文件），默认为`/etc/elasticsearch`。 |
| `ES_JAVA_OPTS` | 任何额外的JVM系统属性，你可能要应用。 |
| `RESTART_ON_UPGRADE` | 配置上的升级包，默认为重启`false`。这意味着你将有手动安装包后重新启动您的elasticsearch实例。这样做的原因是为了保证，在群集升级不会导致连续碎片重新分配导致高网络流量并降低群集的响应时间。 |

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

使用分布`systemd`需要系统资源限制经由被配置`systemd`，而不是通过`/etc/sysconfig/elasticsearch` 文件。见[Systemd配置](https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#systemd "Systemd配置")以获取更多信息。

## RPM 目录结构

Debian的包宿的配置文件，日志，并在基于Debian的系统中相应的位置的数据目录：

| 类型 | 描述 | 默认位置 | 设置 |
| --- | --- | --- | --- |
| **home
** | Elasticsearch主目录或 `$ES_HOME` | `/usr/share/elasticsearch` |   |
| **bin
** | 二进制脚本包括`elasticsearch`启动一个节点，并`elasticsearch-plugin`安装插件 | `/usr/share/elasticsearch/bin` |   |
| **conf
** | 配置文件，包括 `elasticsearch.yml` | `/etc/elasticsearch` | `path.conf` |
| **conf
** | 环境变量，包括堆大小，文件描述符。 | `/etc/default/elasticsearch` |   |
| **data
** | 节点上分配的各索引/碎片的数据文件的位置。可以容纳多个位置。 | `/var/lib/elasticsearch` | `path.data` |
| **logs
** | 日志文件的位置。 | `/var/log/elasticsearch` | `path.logs` |
| **plugins
** | 插件文件的位置。每一个插件将被包含在一个子目录。 | `/usr/share/elasticsearch/plugins` |   |
| **repo
** | 共享文件系统存储库位置。可以容纳多个位置。文件系统存储库可以放在这里指定的任意目录中的任何子目录。 | 未配置 | `path.repo` |
| **script
** | 脚本文件位置。 | `/etc/elasticsearch/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 "重要的系统配置")。