Einführung in ElasticSearch
Grundlagen und Betrieb aus IT Engineering & Operation-Sicht
Nicolas Berens
München, 16.05.2014
2
Agenda
● Was ist ElasticSearch?
● Architektur
● Plugins
● Indizes, Shards & Nodes
● Performance
● HA Setup
● Backup & Re...
Was ist ElasticSearch?
4
Was ist ElasticSearch?
➔ Serverapplikation zur Suche
(Lieferung von Ergebnisse während des
Tippens auf Webseiten z.B.)
➔...
5
Zusammenhang mit Lucene
Indexing von Daten,
Facetting, Highlighting,
ranked searching
Kernfunktionen der
Suche
REST- Int...
6
Installation von ElasticSearch
• Voraussetzung für aktuelle Version (1.3.1):
Java ab Version 1.7
• Verfügbar als zip, ta...
7
Installiert – und nun?
$ curl http://localhost:9200/
{
  "status" : 200,
  "name" : "Hydro­Man",
  "version" : {
    "nu...
Architektur
9
REST-API
● ElasticSearch ist REST-like
d.h. ElasticSearch wird mittels HTTP-GET
angesprochen wärend jede URL für eine
Se...
Plugins
11
Plugins
● Es gibt Plugins für Webinterfaces, Import filter,
Snapshot targets etc.
● Webinterface Demo kommt später
Indizes, Shards & Nodes
13
Indizes, Shards & Nodes
➔ Daten werden im Index abgelegt (Welcher aus
$n Shards besteht), ein Index wird innerhalb
eine...
14
Indizes, Shards & Nodes
➔ Ein Node kann mehrere Indizes enthalten
➔ Die Menge an Shards und der Verteilungsfaktor
könne...
Performance
16
Caches und Heap
➔ Genügend Java HEAP Speicher
➔ Kein Swap!
➔ Viel Filesystem Cache
➔ Hohes File Descriptor limit
➔ Schn...
HA Setup
18
HA Setup – Cluster
● Automatische Discovery möglich (zen discovery, andere Möglichkeiten für ec2, azure
& gce)
● Discov...
Backup & Restore
20
Backup & Restore
➔ Snapshot API
Lokales Filesystem, Amazon S3, HDFS, Azure
auch als Read only
➔ Mit Kompression und ded...
Update
22
Updating Elasticsearch
➔ Grundsätzlich gilt: Releasenotes checken!
➔ Innerhalb einer Version?
➔ Node herunterfahren, up...
Demo
Troubleshooting
25
Was könnte noch sein
Wichtig:
● Identische Java und ES Version auf allen Nodes
● Genügend Arbeitspeicher: Heap Size sol...
26
Vielen Dank für Ihre Aufmerksamkeit
Kontakt
Nicolas Berens
IT Engineering & Operations
inovex GmbH
Office München
Valen...
Nächste SlideShare
Wird geladen in …5
×

Einführung in Elasticsearch - August 2014

858 Aufrufe

Veröffentlicht am

Elasticsearch - Grundlagen und Betrieb aus IT Engineering & Operation-Sicht

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
858
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Einführung in Elasticsearch - August 2014

  1. 1. Einführung in ElasticSearch Grundlagen und Betrieb aus IT Engineering & Operation-Sicht Nicolas Berens München, 16.05.2014
  2. 2. 2 Agenda ● Was ist ElasticSearch? ● Architektur ● Plugins ● Indizes, Shards & Nodes ● Performance ● HA Setup ● Backup & Restore ● Update ● Demo ● Troubleshooting
  3. 3. Was ist ElasticSearch?
  4. 4. 4 Was ist ElasticSearch? ➔ Serverapplikation zur Suche (Lieferung von Ergebnisse während des Tippens auf Webseiten z.B.) ➔ ElasticSearch = Java Applikation ➔ Eigenständige Anwendung ➔ Setzt auf Suchbibliothek Apache Lucene auf
  5. 5. 5 Zusammenhang mit Lucene Indexing von Daten, Facetting, Highlighting, ranked searching Kernfunktionen der Suche REST- Interface, Clustering, Backup Funktionen etc Admin- und Orga- Funktion
  6. 6. 6 Installation von ElasticSearch • Voraussetzung für aktuelle Version (1.3.1): Java ab Version 1.7 • Verfügbar als zip, tar.gz deb und rpm • Init Scripte für upstart, systemd, systemV init sind verfügbar http://www.elasticsearch.org/overview/elkdownloads/
  7. 7. 7 Installiert – und nun? $ curl http://localhost:9200/ {   "status" : 200,   "name" : "Hydro­Man",   "version" : {     "number" : "1.0.0",     "build_hash" : "a46900e9c72c0a623d71b54016357d5f94c8ea32",     "build_timestamp" : "2014­02­12T16:18:34Z",     "build_snapshot" : false,     "lucene_version" : "4.6"   },   "tagline" : "You Know, for Search" }
  8. 8. Architektur
  9. 9. 9 REST-API ● ElasticSearch ist REST-like d.h. ElasticSearch wird mittels HTTP-GET angesprochen wärend jede URL für eine Serverseitige Aktion steht z.B. curl http://localhost:9200/_cluster/health
  10. 10. Plugins
  11. 11. 11 Plugins ● Es gibt Plugins für Webinterfaces, Import filter, Snapshot targets etc. ● Webinterface Demo kommt später
  12. 12. Indizes, Shards & Nodes
  13. 13. 13 Indizes, Shards & Nodes ➔ Daten werden im Index abgelegt (Welcher aus $n Shards besteht), ein Index wird innerhalb eines Clusters auf $i Nodes verteilt ➔ z.b. Index besteht aus 2 Shards wobei jeder Shard auf 2 Nodes verfügbar ist. (Dadurch Ausfallsicherheit)
  14. 14. 14 Indizes, Shards & Nodes ➔ Ein Node kann mehrere Indizes enthalten ➔ Die Menge an Shards und der Verteilungsfaktor können Pro Index eingestellt werden.
  15. 15. Performance
  16. 16. 16 Caches und Heap ➔ Genügend Java HEAP Speicher ➔ Kein Swap! ➔ Viel Filesystem Cache ➔ Hohes File Descriptor limit ➔ Schnelle Platten
  17. 17. HA Setup
  18. 18. 18 HA Setup – Cluster ● Automatische Discovery möglich (zen discovery, andere Möglichkeiten für ec2, azure & gce) ● Discovery über multicast, unicast ● Automatische Wahl eines (mehreren) Master ● Automatisches Routing von Anfragen im Cluster ● Wichtig: Die Nodes müssen untereinander kommunizieren können
  19. 19. Backup & Restore
  20. 20. 20 Backup & Restore ➔ Snapshot API Lokales Filesystem, Amazon S3, HDFS, Azure auch als Read only ➔ Mit Kompression und deduplikation ➔ z.b. werden bei täglichem Backup nur die Änderungen zu gestern gespeichert
  21. 21. Update
  22. 22. 22 Updating Elasticsearch ➔ Grundsätzlich gilt: Releasenotes checken! ➔ Innerhalb einer Version? ➔ Node herunterfahren, updaten, hochfahren und warten bis sich der Cluster synchronisiert hat. ➔ Elasticsearch version 0.9.x auf 1.x ? ➔ Alle nodes im Cluster beenden, jeden node aktualiseren und danach hochfahren
  23. 23. Demo
  24. 24. Troubleshooting
  25. 25. 25 Was könnte noch sein Wichtig: ● Identische Java und ES Version auf allen Nodes ● Genügend Arbeitspeicher: Heap Size sollte 60% vom Ram sein (rest Lesecache) ● Es Gibt keine Rechteverwaltung, jeder der Zugriff hat, hat zugriff (Sowohl, Read als auch RW) ● ABER: mit Proxy kann man Filtern (PUT für ro, http auth, nach Unterverzeichnissen sortiert)
  26. 26. 26 Vielen Dank für Ihre Aufmerksamkeit Kontakt Nicolas Berens IT Engineering & Operations inovex GmbH Office München Valentin-Linhof-Straße 2 81829 München Mobil 0173 / 3181 109 Mail nicolas.berens@inovex.de

×