Elasticsearch — Установка

Все действия описные ниже, выполняются от пользователя root, не забывайте использовать sudo

На сайте Elasticsearch указано:

Elasticsearch requires Java 8 or later.

Тут 3 варианта развития событий:
1 - у вас нет Java, вы ее устанавливаете с нуля;
2 - у вас есть старая версия, которую вы удаляете и устанавливаете свежую;
3 - вы устанавливаете свежую версия, не удаляя старую, просто указав новую версию по умолчанию

Проверим установленную версию Java:

java -version

Если Java установлена, то результате должно выдать похожий ответ:

java version "1.7.0_181"
OpenJDK Runtime Environment (amzn-2.6.14.8.80.amzn1-x86_64 u181-b00)
OpenJDK 64-Bit Server VM (build 24.181-b00, mixed mode)

Если у вас не установлена Java или установлена старая версия и вы не хотите ее удалять, переходите сразу к установке.

Удаление Java (если вы выбрали путь с удалением старой версии).

Посмотрим, название установленного пакета:

rpm -qa | grep openjdk

Удаляем старую версию:

yum autoremove java-1.7.0-openjdk.x86_64

Или же так:

yum autoremove $(rpm -qa | grep openjdk)

Установка Java.

Смотрим более свежие версии:

yum search openjdk

Устанавливаем:

yum install -y java-1.8.0-openjdk.x86_64

Если нужна еще свежея версия, чем в репозиториях, то скачайте RPM файл с сайта разработчика и установите.

Замена версии Java по умолчанию (если у вас была старая версия Java и вы ее не удалили).

alternatives --config java

Указываем номер по списку нужной версии и нажимаем Enter.

Установка Elasticsearch.

Теперь добавим репозиторий Elasticsearch. На момент написания, актуальная версия была 6.Х

Импортируем ключ репозитория:

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

Затем добавим репозиторий:

cat > /etc/yum.repos.d/elasticsearch.repo << EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Посмотрим список репозиториев:

yum repolist

Ну теперь можно приступить к установке:

yum install -y elasticsearch

Добавим в автозапуск:

Если у вас CentOS 7:

systemctl enable elasticsearch

Если вы делали это на AWS, на амазоновском образе на основе CentOS'а без systemd (Amazon Linux AMI 2018.03), то по старинке через chkconfig:

chkconfig elasticsearch on

Проверим:

chkconfig | grep elasticsearch
elasticsearch 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Запустим Elasticsearch:

systemd:

systemctl start elasticsearch

SysV:

service elasticsearch start

Я запускал Elasticsearch на AWS, и взял для этого инстанс t2.micro, у которого 1 Gb RAM, поэтому при запуске Elasticsearch, я увидел следующее:

Starting elasticsearch: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /var/log/elasticsearch/hs_err_pid23835.log

Решение данной проблемы в следующем, открываем файл настроек Java Elasticsearch:

vim /etc/elasticsearch/jvm.options

Смотрим нужное нам описание:

################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

И смотрим, что же указано у нас:

-Xms1g
-Xmx1g

Меняем на:

-Xms512m
-Xmx512m

И пробуем запустить еще раз.

512 мегабайт для Elasticserach очень мало, но для ознакомления хватит.

Так же Elasticsearch может не запуститься, если значение разрешенных запущенных процессов слишком низкое, и так же открытых файлы, чтобы этого избежать, достаточно выполнить:

ulimit -u 4096
ulimit -n 65536

Текущие значения можно посмотреть так:

ulimit -a

Для теста достаточно, а на постоянную основу нужно вносить изменения в "/etc/security/limits.conf"

Если вы настраиваете на Ubuntu, обратите внимание, что она может игнорировать этот файл, тогда необходимо отрыть файл "/etc/pam.d/su" и раскомментировать следующую строку:

# session required pam_limits.so

После этого достаточно перелогинится.

По умолчанию Elasticsearch слушает localhost на порту 9200 TCP, поэтому проверить его работоспособность можно так:

curl localhost:9200

Вы должны получить что-то вроде:

{
  "name" : "hg20ils",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "ErZwY7nKQG6rEoF-stKsiA",
  "version" : {
    "number" : "6.4.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "04711c2",
    "build_date" : "2018-09-26T13:34:09.098244Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

На этом статья о установке Elasticsearch заканчивается, в следующей мы 2 существующих инстанса с установленным Elasticsearch объединим в кластер.

0 0 vote
Article Rating

Метки: Метки

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments