# Cassandra Cluster DB und der Java-Treiber



## dzim (24. Mrz 2016)

Hi zusammen

Hat wer von euch damit schon Erfahrung gemacht? Ich versuche gerade einen Cluster und ein ihn nutzendes Tool zu implementieren und habe gerade einige - wie ich finde - komische Effekte mit dem Client...

Ausgangslage: Zum Testen habe ich zwei Systeme (ein VM einmal mein Dev-PC), auf denen jeweils ein Node laufen. Das klappt soweit und die Konfig und Daten werden schön verteilt. (nicht allzu schwer, bei dem minimalistischen "Cluster").

Cassandra-Version: Bleeding-Edge. Tick-Tock-Release 3.4.
Java Driver Version: Aktuell. 3.0.0

Jetzt bin ich an der Client-Seite.

Connection zum Cluster: Check!

Abfragen der Cluster-Metadaten: Check! ABER hier beginnt es komisch zu werden:
Datacenter: datacenter1; Host: /10.20.30.74; Rack: rack1, State: UP 
Datacenter: datacenter1; Host: /10.20.30.77; Rack: rack1, State: UP

Egal ob der Node auf dem zweiten Host (10.20.30.77) an ist, oder nicht, Der Status ist stets UP, auch wenn das Kommandozeilen-Tool "nodetool status" das hier liefert:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens       Owns (effective)  Host ID                               Rack
DN  10.20.30.77  184.84 KB  256          100.0%            8ef7f5d9-0560-4648-84c0-443bfa9f49cb  rack1
UN  10.20.30.74  180.67 KB  256          100.0%            edbfa214-7e1f-42b5-abe0-e7a60be37583  rack1

(DN = Down & Normal)

In diesem Fall schlägt oft das Erstellen einer Session für die Cassandra Query Language (über den Java Driver) fehl:

Error creating pool to /10.20.30.77:9042
com.datastax.driver.core.exceptions.ConnectionException: [/10.20.30.77] Pool was closed during initialization
[...]

Also irgendwie weiss der Cluster nicht so recht, dass 10.20.30.77 wirklich Down ist, habe ich das Gefühl.
Hat jemand von euch damit Erfahrung - oder kennt jemanden, der jemanden kennt, der ...

Grüsse und Danke
Daniel


----------



## dzim (7. Apr 2016)

Schade, das hier keiner Erfahrung damit zu haben scheint. Nach etlichen Versuchen und Suchen im Internet, die leider gar nicht helfen konnten (weil sich schlicht nichts finden lässt), hatte ich bereits aufgegeben.

Etwas später fielen mir dann zwei Sachen auf:
- Mein Replication-Faktor war 3, bei zwei Nodes... Das macht wenig Sinn. Habe also einen dritten virtuellen Node hinzugefügt.
- Der Fehler ist eigentlich mehr eine Warnung. Ich konnte mich wider Erwarten trotzdem mit dem Cluster verbinden...

Viel Lärm um "nichts" - oder wenigstens viel Lärm um wenig.

Es klappt jetzt alles soweit und ich konnte meine Anwendung weiterentwickeln. Und habe nebenbei viel über die Unterschiede dieser High Availability NoSQL-DB gelernt, speziell wo sie sich trotz sehr ähnlicher Abfragesyntax eben massiv von einer klassischen Relationalen Datenbank unterscheidet. Sehr spannend!


----------

