Wprowadzenie do ElasticSearch
Czym jest ElasticSearch:
- ElasticSearch to otwartoźródłowa wyszukiwarka oparta na Apache Lucene
- Napisany w Javie, oferuje proste i łatwe w użyciu API RESTFul
- Łatwe skalowanie do obsługi przetwarzania danych strukturalnych lub nieustrukturyzowanych na poziomie petabajtów
Scenariusze zastosowań:
- Silnik analizy masowych danych
- Wyszukiwarka na stronie
- Jako hurtownia danych
Adres dokumentu:Logowanie do linku jest widoczne.
Środowisko wdrożenia:
CentOS 7 x64-bit, wersja Elasticsearch 6.5.2, JDK 1.8.0.191
1: Instalacja JDK 1.8.0
ElasticSearch jest wrażliwy na wersję JRE, a zła wersja powoduje, że ElasticSearch nie będzie działał.
2: Pobierz i uruchom ElasticSearch 6.5.2
Pobierz stronę z adresem:Logowanie do linku jest widoczne.
[root@VM_0_9_centos elasticsearch-6.5.2]# ./bin/elasticsearch Ostrzeżenie o maszynach maszynowych OpenJDK 64-Bit Server: Jeśli liczba procesorów ma wzrosnąć z jednego, należy odpowiednio skonfigurować liczbę równoległych wątków GC, używając -XX: ParallelGCThreads=N [2018-12-11T15:24:27,847] [OSTRZEŻENIE] [o.e.b.ElasticsearchUncaughtExceptionHandler] [nieznany] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.5.2.jar:6.5.2] at 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] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.5.2.jar:6.5.2] at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.5.2.jar:6.5.2] na org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] Spowodowane przez: java.lang.RuntimeException: nie można uruchomić elasticsearch jako root na org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.2.jar:6.5.2] na org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.2.jar:6.5.2] na org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.5.2.jar:6.5.2] na org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.5.2.jar:6.5.2] ... Jeszcze 6
Elasticsearch wymaga, żeby nie można uruchomić konta z rootem superużytkownika, więc możemy utworzyć konto na luzie, a ja muszę używać użytkownika jako es
Jeśli nie ma błędu, uruchamia się pomyślnie
Otwórz nowy terminal i uzyskaj dostęp do niego przez Curl
W przypadku upewnienia się, że port serwera (9200) jest włączony, uruchamiany jest elasticsearch (ps -ef | grep elasticsearch) jest dostępny w przeglądarce
[root@VM_0_9_centos lokalny] # curl 'http://localhost:9200/?pretty'
{ "imię" : "iUSRV4T", "cluster_name" : "elasticsearch", "cluster_uuid" : "WCbka65VTd2TnM8gQvztqg", "version" : { "numer" : "6.5.2", "build_flavor" : "domyślnie", "build_type" : "smola", "build_hash" : "9434 łóżka", "build_date" : "2018-11-29T23:58:20.891072Z", "build_snapshot": fałsz, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "hasło towarowe": "Wiesz, do wyszukiwania"
}
3: Dostęp do Elasticsearch przez Internet
Edytuj plik konfiguracyjny elasticsearch
Znajdź linię network.host: usuń znak # i zmień ją na:
(network.host: [_local_, 172.30.6.1] 172.30.6.1 to określony adres IP, który może być wieloma adresami IP. Nie testowany)
Zrestartuj Elasticsearch, a wtedy będziesz mógł uzyskać dostęp do interfejsu http://ip:9200 w Internecie.
Możliwe błędy:
Błąd pierwszy
Maksymalna liczba obszarów pamięci wirtualnej vm.max_map_count [65530] jest zbyt niska, zwiększ do co najmniej [262144] Wartość max_map_count odnosi się do maksymalnych obszarów mapy pamięci dostępnych dla procesu, co jest używane podczas wywoływania malloc i generowane przez mmap/mprotect.
Obejście: Zwiększ rozmiar vm.max_map_count:
Błąd drugi
Maksymalna liczba deskryptorów plików [4096] dla procesu elastycznego przeszukiwania jest zbyt niska, zwiększaj do co najmniej [65536] Rozwiązanie
Po modyfikacji zaloguj się ponownie do użytkownika ES i użyj następującego polecenia, aby sprawdzić, czy modyfikacja się powiodła
Błąd 3
Ostrzeżenie o maszynie wirtualnej Java HotSpot(TM) 64-Bit Server: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) nieudane; error='Nie można przydzielić pamięci' (errno=12) Rozwiązanie
przypowiedział AliMożliwe problemy na
filtry wywołań systemowych nie zostały zainstalowane; Sprawdź logi i popraw konfigurację lub wyłącz filtry wywołań systemowych na własne ryzyko Rozwiązanie: Dodaj następujące polecenie do konfiguracji elasticsearch
|