Установка Elasticsearch
В этом разделе мы будем устанавливать Elasticsearch на локальном компьютере в виде одноузлового кластера. Как только мы начнем работу с кластером, мы научимся использовать API-интерфейсы для проверки работоспособности узлов. Разберем как установить в Windows, Mac OS и Debian / RPM.
Установка Java
Elasticsearch — это Java-приложение. Прежде чем мы сможем запустить Elasticsearch, мы должны убедиться, что у нас установлена Java. Вам требуется Java Runtime Environment ( JRE ). Elasticsearch рекомендует Oracle Java Development Kit ( JDK ) 1.8.0_73
или выше. Вы можете проверить версию Java, установленную на вашем компьютере, выполнив следующую команду в командной строке или терминале:
java -version
Если у вас нет установленной Java или у вас установлена более старая версия, следуйте инструкциям по следующей ссылке:
http://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html
Загрузить можно тут http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html .
Пожалуйста, примите лицензионное соглашение и загрузите JDK в выборе формата вашего пакета. После того, как вы установили Java, проверьте версию Java с помощью этой java -version
команды. Так же убедитесь что JAVA_HOME переменная среды установлена:
echo %JAVA_HOME%
Windows
Давайте загрузим последнюю версию Elasticsearch в zip
формате пакета с https://www.elastic.co/downloads/elasticsearch .
Elasticsearch 5.5.1 zip можно загрузить с тут:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
После того, как вы загрузили ZIP-архив, распакуйте ZIP-архив в выбранный вами каталог.
Запуск и остановка Elasticsearch
Вы можете запустить Elasticsearch, используя двоичные скрипты в папке bin . Чтобы запустить экземпляр Elasticsearch, выполните следующие команды:
cd c:\elasticsearch-5.5.1 bin\elasticsearch.bat
Если Elasticsearch запущен успешно, вы увидите started
сообщение, показанное ниже:
[2017-01-26T20:20:35,919][INFO ][o.e.h.HttpServer] [elasticsearch1] publish_address {127.0.0.1:9200}, bound_addresses {[fe80::1]:9200}, {[::1]:9200}, {127.0.0.1:9200}
[2017-01-26T20:20:35,919][INFO ][o.e.n.Node] [elasticsearch1] started
Как видно из предыдущего сообщения журнала, работает Elasticsearch http://127.0.0.1:9200
. Мы только начали использовать Elasticsearch в качестве одноузлового кластера.
Так как вы запустили его из командной строки, вы можете просто прервать процесс, нажав Ctrl + C . Если все хорошо, вы увидите сообщение в консоли, аналогичное показанному ниже:
[2017-01-26T20:22:34,092][INFO ][o.e.n.Node] [elasticsearch1] stopping ...
[2017-01-26T20:22:34,104][INFO ][o.e.n.Node] [elasticsearch1] stopped
[2017-01-26T20:22:34,104][INFO ][o.e.n.Node] [elasticsearch1] closing ...
[2017-01-26T20:22:34,110][INFO ][o.e.n.Node] [elasticsearch1] closed
Mac OS X
Давайте загрузим последнюю версию Elasticsearch в tar.gz
формате, выполнив следующую команду в вашем терминале:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.tar.gz tar -xvf elasticsearch-5.5.1.tar.gz
После загрузки распакуйте в каталок по вашему усмотрению.
Запуск и остановка Elasticsearch
Вы можете запустить Elasticsearch, используя двоичные скрипты в папке bin . Чтобы запустить экземпляр Elasticsearch, выполните следующие команды:
cd elasticearch-5.1.2 ./bin/elasticsearch
Если Elasticsearch запущен успешно, вы увидите примерно тоже что в низу:
[2017-01-26T20:20:35,919][INFO ][o.e.h.HttpServer] [elasticsearch1] publish_address {127.0.0.1:9200}, bound_addresses {[fe80::1]:9200}, {[::1]:9200}, {127.0.0.1:9200} [2017-01-26T20:20:35,919][INFO ][o.e.n.Node] [elasticsearch1] started
Как видно из сообщения Elasticsearch запущен по адресу http://127.0.0.1:9200
. Мы только начали использовать Elasticsearch в качестве одноузлового кластера.
Остановить можно нажав Ctrl + C
. Если все хорошо вы увидите примерно следующее:
[2017-01-26T20:22:34,092][INFO ][o.e.n.Node] [elasticsearch1] stopping ... [2017-01-26T20:22:34,104][INFO ][o.e.n.Node] [elasticsearch1] stopped [2017-01-26T20:22:34,104][INFO ][o.e.n.Node] [elasticsearch1] closing ... [2017-01-26T20:22:34,110][INFO ][o.e.n.Node] [elasticsearch1] closed
Пакеты DEB и RPM
Вы также можете установить Elasticsearch с помощью пакета Debian или RPM ( Red Hat Package Manager ). При установке с использованием пакетов DEB или RPM Elasticsearch будет установлен в /usr/share/elasticsearch
. Обратите внимание, что структура каталогов отличается при установке с использованием пакета Debian или RPM по сравнению с файлом zip / tar.
Пакет Debian
Для операционной системы на базе Debian, такой как Ubuntu, вы можете загрузить пакет Debian непосредственно с веб-сайта Elasticsearch, используя следующую ссылку:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.deb sudo dpkg -i elasticsearch-5.5.1.deb
При использовании пакета Debian Elasticsearch будет установлен как служба. Про запуск и остановку будет чуть ниже.
Пакет RPM
Для операционных систем на базе RPM, таких как Centos и Red Hat, вы можете загрузить пакет RPM непосредственно с веб-сайта Elasticsearch, используя следующую ссылку:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.rpm
После загрузки пакета вы можете установить Elasticsearch, используя следующую команду:
sudo rpm --install elasticsearch-5.1.2.rpm
При использовании пакета RPM Elasticsearch будет установлен как служба.
Запуск и остановка Elasticsearch
Если вы устанавливаете Elasticsearch с помощью пакета Debian или RPM, вы можете запустить / остановить Elasticsearch с помощью команд управления сервисами.
Запуск:
sudo -i service elasticsearch start
Остановка:
sudo -i service elasticsearch stop
Вы можете проверить log
файл, чтобы убедиться, что Elasticsearch запущен / остановлен успешно.
tail -100 /var/log/elasticsearch/elasticsearch.log
Примеры файлов конфигурации
Если вы устанавливаете Elasticsearch, используя zip
или .tar.gz
, elasticsearch.yml
файл находится в каталоге в основной папке elasticsearch-5.5.1
. Если вы устанавливаете Elasticsearch с использованием DEB / RPM, он по умолчанию находится в папке /etc/elasticsearch
.
Если у вас пока только один узел, вам нужно установить имя кластера, имя узла и IP-адрес, к которому должен привязываться Elasticsearch. Если IP-адрес не указан, он будет привязан к localhost:
cluster.name: es-dev node.name: elasticsearch1 network.host: 0.0.0.0
Если вы хотите настроить несколько узлов, наряду с вышеупомянутыми свойствами, вы также должны указать IP-адрес других узлов в кластере, чтобы они могли обнаружить друг друга.
Ниже приведена конфигурация для node1
:
cluster.name: es-dev node.name: elasticsearch1 network.host: 0.0.0.0 discovery.zen.ping.unicast.hosts: ["node1_ip_address:9300", "node2_ip_address:9300"]
Ниже приведена конфигурация для node2
:
cluster.name: es-dev
node.name: elasticsearch2
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["node1_ip_address:9300", "node2_ip_address:9300"]
Заметка
Обратите внимание, что имя кластера должно быть одинаковым для всех узлов в кластере. Внутренне узлы обмениваются данными друг с другом с использованием транспортного протокола, а номер порта для транспортного протокола — 9300.
Проверка Elasticsearch
По умолчанию Elasticsearch работает на 9200
HTTP-порту. После запуска Elasticsearch вы можете проверить его, забив в свой любимый браузер http://127.0.0.1:9200
. Вы должны увидеть ответ JSON, подобный следующему:
{ "name": "A_TmR2p", "cluster_name": "elasticsearch", "cluster_uuid": "Mp7tziykSjymFwBYozM4RA", "version": { "number": "5.5.2", "build_hash": "c8c4c16", "build_date": "2017-01-11T20:18:39.146Z", "build_snapshot": false, "lucene_version": "6.3.0" }, "tagline": "You Know, for Search" }
Из ответа JSON вы можете видеть, что имя узлаA_TmR2p
кластера elasticsearch
, наряду с несколькими другими деталями. По умолчанию Elasticsearch назначает случайное имя ( A_TmR2p
) узлу при запуске.