Введение в ElasticSearch
Что такое ElasticSearch:
- ElasticSearch — это поисковая система с открытым исходным кодом, построенная на базе Apache Lucene
- Написанный на Java, он предоставляет простой и удобный в использовании API RESTFul
- Простое масштабирование для поддержки структурированной или неструктурированной обработки данных на уровне петабайтов
Сценарии применения:
- Движок массового анализа данных
- Поисковая система на сайте
- Как хранилище данных
Адрес документа:Вход по гиперссылке виден.
Среда развертывания:
CentOS 7 x64-bit, Elasticsearch версии 6.5.2, JDK 1.8.0.191
1: Установка JDK 1.8.0
ElasticSearch чувствителен к версии JRE, и неправильная версия приведёт к тому, что ElasticSearch перестанет работать.
2: Скачать и запустить ElasticSearch 6.5.2
Скачайте страницу с адресом:Вход по гиперссылке виден.
[root@VM_0_9_centos elasticsearch-6.5.2]# ./bin/elasticsearch OpenJDK 64-bit Server VM предупреждение: если ожидается увеличение числа процессоров с одного, то следует правильно настроить количество параллельных потоков GC с помощью -XX: ParallelGCThreads=N [2018-12-11T15:24:27,847] [ПРЕДУПРЕЖДЕНИЕ] [o.e.b.ElasticsearchUncaughtExceptionHandler] [неизвестно] незафиксированное исключение в теме [основная]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root на org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.5.2.jar:6.5.2] на org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.5.2.jar:6.5.2] на org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] Причина: java.lang.RuntimeException: не может запустить elasticsearch как корень на org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.5.2.jar:6.5.2] ... Ещё 6
Elasticsearch требует, чтобы нельзя запускать с корнем суперпользователя, поэтому мы можем создать аккаунт случайно, и мне приходится использовать пользователя как es
Если ошибки нет, система запускается успешно
Откройте новый терминал и получите доступ к нему с помощью Curl
Если убедиться, что серверный порт (9200) включён, запускается elasticsearch (ps -ef | grep elasticsearch) доступна в браузере
[root@VM_0_9_centos местный]# curl 'http://localhost:9200/?pretty'
{ "имя": "iUSRV4T", "cluster_name" : "elasticsearch", "cluster_uuid" : "WCbka65VTd2TnM8gQvztqg", "версия" : { «число»: «6.5.2», «build_flavor» : «по умолчанию», "build_type" : "смола", "build_hash" : "9434bed", "build_date" : "2018-11-29T23:58:20.891072Z", "build_snapshot" : ложно, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, «слоган»: «Знаешь, для поиска»
}
3: Доступ к Elasticsearch через Интернет
Редактировать конфигурационный файл elasticsearch
Найдите network.host: строку, уберите знак # и измените его на:
(network.host: [_local_, 172.30.6.1] 172.30.6.1 — указанный IP-адрес, который может быть несколькими IP-адресами. Не тестировался)
Перезапустите Elasticsearch, и тогда вы сможете получить доступ к http://ip:9200 интерфейсу в Интернете.
Возможные ошибки:
Ошибка первая
Максимальная область виртуальной памяти vm.max_map_count [65530] слишком мала, увеличивайте до минимум [262144] Значение max_map_count относится к максимальным площадям карты памяти, доступных процессу, которые используются при вызове malloc и генерируются mmap/mprotect.
Обходной путь: Увеличьте размер vm.max_map_count:
Ошибка вторая
Максимальные дескрипторы файлов [4096] для процесса ElasticSearch слишком низкие, увеличите как минимум до [65536] Решение
После модификации снова войдите в аккаунт пользователя ES и используйте следующую команду, чтобы проверить, успешна ли модификация
Ошибка 3
Java HotSpot(TM) 64-bit Server VM предупреждение: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) не удалось; error='Невозможно выделить память' (errno=12) Решение
у— сказал Али.Возможные проблемы на
фильтры системных вызовов не установили; Проверьте логи и исправьте конфигурацию или отключите фильтры системных вызовов на свой страх и риск Решение: Добавить следующую команду в конфигурацию elasticsearch
|