Einführung in Elasticsearch - August 2014

893 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
893
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
4
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

×