elasticsearchをVMにインストールする

## About
なんだかんだでちゃんと触ったことがなかったので試す。

## 環境
- vagrantで立てたbento/centos-7.2
    - 7.3はなぞのエラーに見舞われたのでパス

## インストール
基本的に公式のガイドに従うだけ。rpmで入れたほうが便利そうなので、rpmで導入する。

### JREをインストール
Javaの実行環境が必要なのでopenjdkを導入。

```zsh
$ sudo yum install java-1.8.0-openjdk
$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)
```

### GPGキーをインポート

```zsh
$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
```

### elasticsearchのリポジトリを手で追加してインストール

```zsh
$ sudo vi /etc/yum.repos.d/elasticsearch.repo
[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
```

```zsh
$ sudo yum install elasticsearch -y
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
  検証中                  : elasticsearch-5.1.1-1.noarch                   1/1

インストール:
  elasticsearch.noarch 0:5.1.1-1

完了しました!
```

ってなってたので、とりあえずsystemdで起動。

```zsh
$ sudo systemctl start elasticsearch
$ sudo systemctl status elasticsearch
```

エラーが…

```
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: #
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: # There is insufficient memory for the Java Runtime Environment to continue.
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: # Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: # An error report file with more information is saved as:
Jan 07 11:40:52 localhost.localdomain elasticsearch[3409]: # /tmp/hs_err_pid3409.log
Jan 07 11:40:52 localhost.localdomain systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
```

メモリーが足りないとのこと。（VMのメモリーは512MBだった。さすがに小さいかなと思ってあとで1GBにした）

デフォルトだと2GB近く必要らしい。

https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html

## メモリーサイズを変更する

設定を変更するには下記ファイルを修正

```/etc/elasticsearch/jvm.options
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

#-Xms2g
#-Xmx2g
-Xms1g 
-Xmx1g
```

これで起動を試みると

```
$ sudo systemctl start elasticsearch
$ sudo systemctl status elasticsearch
[vagrant@localhost etc]$ sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
   Active: active (running) since 土 2017-01-07 11:53:24 UTC; 44s ago
```

起動した！インストール完

## 参考
- http://qiita.com/jooex/items/21a26e70f995e91a4e36