Manchmal braucht man auf seinem Rechner Zugang zu einem Service, den man eigentlich recht aufwändig installieren müsste. Stell Dir einfach vor, Du wolltest Elasticsearch auf Deinem Mac zum laufen bringen. Wie macht man das am schnellsten?

Im Moment würde ich behaupten, dass die schnellste Möglichkeit, einen solchen Service zum Laufen zu bringen, die Nutzung von Docker ist, aber bei mir auf dem Mac mag Elasticsearch nicht so ohne weiteres laufen. Daher möchte ich kurz den kleine Workaround beschreiben, den ich verwende, damit es dennoch klappt.

Über Docker:

Docker ist eine Open-Source-Software, die dazu verwendet werden kann, Anwendungen mithilfe von Betriebssystemvirtualisierung in Containern zu isolieren. Dies vereinfacht einerseits die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen. Andererseits gewährleisten Container die Trennung der auf einem Rechner genutzten Ressourcen, sodass ein Container keinen Zugriff auf Ressourcen anderer Container hat.

Quelle: Wikipedia.de

Über Elasticsearch:

Elasticsearch ist eine Suchmaschine auf Basis von Lucene. Das in Java geschriebene Programm speichert die Suchergebnisse in einem NoSQL-Format (JSON) und gibt sie über ein RESTful-Webinterface aus.

Quelle: Wikipedia.de

Docker Toolbox installieren und Elasticsearch „installieren“

Ich selbst habe daher die Docker Toolbox installiert. Die Toolbox selbst enthält den Docker Engine, Compose, Machine und Kitematic. Kitematic ist dabei so eine Art „App Store“, der es zum einen super einfach macht Docker-Images zu installieren, zum anderen diese auszuführen.

Nach der Installation, kannst Du Kitematic öffnen. Im Hintergrund wird VirtualBox gestartet und das Kitematic Interface wird für Dich gestartet. Dort kannst Du nun Docker-Images suchen und mit einem Klick installieren. Ein wenig aufpassen sollte man schon, denn so ein Docker-Image kann so ziemlich jeder hochladen, der bei Docker Hub ein Konto hat.

Einige sind jedoch mit „official“ gekennzeichnet oder haben viele Millionen Downloads, und die sind dann natürlich recht vertrauenswürdig.

Mit „Create“ fügt man dann das Docker Image der eigenen Umgebung zu.

Elastisearch starten

Bei mir kommt jedoch beim Starten von Elasticsearch folgende Fehlermeldung:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Das ganze lässt sich recht leicht lösen, auch wenn ich noch keine permanente Lösung gefunden habe. Die Lösung läuft über den Terminal. Kitematic macht zwar den Großteil der Terminal-Nutzung überflüssig, aber hier muss man halt doch mal ran…

  1. Öffne den Terminal
  2. Gib folgendes ein: docker-machine ssh
  3. Im nächsten Schritt gib diesen Befehl ein: sudo sysctl -w vm.max_map_count=262144
  4. Es gibt keinen vierten Schritt, dafür einen Screenshot als „Referenz“

Nun lässt sich Elasticsearch starten. Kitematic verrät Dir unter Settings > Ports wo Elasticsearch läuft. Elasticsearch läuft ja normalerweise auf Port 9200, damit Dein Mac jedoch mit dem Docker-Image kommunizieren kann, werden die Ports gemappt und weitergeleitet. Bei mir läuft daher Elasticsearch auf Port 32775 und ruft man Elasticsearch auf, öffnet sich der Browser und zeigt zwar nicht viel spannendes an, aber genau das was man erwartet.

{
  "name" : "yR1KYkd",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "jroFCHZXTneVArSurj_UHQ",
  "version" : {
    "number" : "5.1.1",
    "build_hash" : "5395e21",
    "build_date" : "2016-12-06T12:36:15.409Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"
}

Die ganze Installation und Konfiguration braucht keine 5 Minuten und ist extrem nützlich!

 


Claus Wolf

Seit 1994 im Netz unterwegs und seit 2004 eingefleischter Mac-Nutzer.

0 Kommentare

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.