einführung in elasticsearch - august 2014

26
Einführung in ElasticSearch Grundlagen und Betrieb aus IT Engineering & Operation-Sicht Nicolas Berens München, 16.05.2014

Upload: inovex-gmbh

Post on 22-Jun-2015

394 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Einführung in Elasticsearch - August 2014

Einführung in ElasticSearch

Grundlagen und Betrieb aus IT Engineering & Operation-Sicht

Nicolas Berens

München, 16.05.2014

Page 2: Einführung in Elasticsearch - August 2014

2

Agenda

● Was ist ElasticSearch? ● Architektur● Plugins● Indizes, Shards & Nodes● Performance● HA Setup● Backup & Restore● Update● Demo● Troubleshooting

Page 3: Einführung in Elasticsearch - August 2014

Was ist ElasticSearch?

Page 4: Einführung in Elasticsearch - August 2014

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

Page 5: Einführung in Elasticsearch - August 2014

5

Zusammenhang mit Lucene

Indexing von Daten, Facetting, Highlighting, ranked searchingKernfunktionen der Suche

REST- Interface, Clustering, Backup Funktionen etcAdmin- und Orga-Funktion

Page 6: Einführung in Elasticsearch - August 2014

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/

Page 7: Einführung in Elasticsearch - August 2014

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"}

Page 8: Einführung in Elasticsearch - August 2014

Architektur

Page 9: Einführung in Elasticsearch - August 2014

9

REST-API

● ElasticSearch ist REST-liked.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

Page 10: Einführung in Elasticsearch - August 2014

Plugins

Page 11: Einführung in Elasticsearch - August 2014

11

Plugins

● Es gibt Plugins für Webinterfaces, Import filter, Snapshot targets etc.

● Webinterface Demo kommt später

Page 12: Einführung in Elasticsearch - August 2014

Indizes, Shards & Nodes

Page 13: Einführung in Elasticsearch - August 2014

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)

Page 14: Einführung in Elasticsearch - August 2014

14

Indizes, Shards & Nodes

➔ Ein Node kann mehrere Indizes enthalten

➔ Die Menge an Shards und der Verteilungsfaktor

können Pro Index eingestellt werden.

Page 15: Einführung in Elasticsearch - August 2014

Performance

Page 16: Einführung in Elasticsearch - August 2014

16

Caches und Heap

➔ Genügend Java HEAP Speicher➔ Kein Swap!➔ Viel Filesystem Cache➔ Hohes File Descriptor limit➔ Schnelle Platten

Page 17: Einführung in Elasticsearch - August 2014

HA Setup

Page 18: Einführung in Elasticsearch - August 2014

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

Page 19: Einführung in Elasticsearch - August 2014

Backup & Restore

Page 20: Einführung in Elasticsearch - August 2014

20

Backup & Restore

➔ Snapshot APILokales Filesystem, Amazon S3, HDFS, Azureauch als Read only

➔ Mit Kompression und deduplikation➔ z.b. werden bei täglichem Backup nur die

Änderungen zu gestern gespeichert

Page 21: Einführung in Elasticsearch - August 2014

Update

Page 22: Einführung in Elasticsearch - August 2014

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

Page 23: Einführung in Elasticsearch - August 2014

Demo

Page 24: Einführung in Elasticsearch - August 2014

Troubleshooting

Page 25: Einführung in Elasticsearch - August 2014

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)

Page 26: Einführung in Elasticsearch - August 2014

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 [email protected]