4-Node Raspberry Apache Cassandra Cluster
Verfasst: Dienstag 18. August 2015, 08:31
Hallo zusammen,
habe ein 4-Node Raspberry Pi (B+) Netzwerk, mit einer Apache Cassandra NoSQL-Datenbank am laufen.
Mir gelang es erfolgreich, mich mittels Python2 mit der Cassandra-Datenbank zu verbinden und ich entwickelte ein kleines primitives "Benchmark"-Tool (wenn man sowas überhaupt so nennen darf
)
Hier mein Benchmark.py:
Wie gesagt, das Script ist an sich primitiv und nicht wirklich dynamisch. Aber für meine Zwecke ist es i.O..
Mein Problem an der Sache ist nun, dass ich immer folgenden Output-Fehler bekomme, mit welchen ich nichts anfangen kann als Python-Neuling:
Ich hoffe und poche auf Eure Erfahrenheit und bedanke mich im Voraus.
LG,
ColonelHoagen
habe ein 4-Node Raspberry Pi (B+) Netzwerk, mit einer Apache Cassandra NoSQL-Datenbank am laufen.
Mir gelang es erfolgreich, mich mittels Python2 mit der Cassandra-Datenbank zu verbinden und ich entwickelte ein kleines primitives "Benchmark"-Tool (wenn man sowas überhaupt so nennen darf

Hier mein Benchmark.py:
Code: Alles auswählen
# Important imports - File-Header
from datetime import datetime
import time
# Verbindung zum Cluster aufnehmen
print("Baue Verbindung zum Cluster auf")
from cassandra.cluster import Cluster
cluster = Cluster(['192.168.178.51'])
session = cluster.connect()
# Zeitmessung beginnen
print("Starte Zeitmessung")
ZeitAnfang = datetime.now()
# Keyspace erstellen
print("Erstelle Keyspace")
session.execute("CREATE KEYSPACE demo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 };")
# Benutzer DEMO benutzen
print("Benutze DEMO keyspace")
session.execute("USE demo;");
# Tabellen erstellen ... DEMO.USER 0 bis 5
print("Erstelle Tabellen DEMO.USER0-5")
session.execute("CREATE TABLE demo.user0 ( vorname text PRIMARY KEY , name text , age int ) ;");
#session.execute("CREATE TABLE demo.user1 ( vorname text PRIMARY KEY , name text , age int ) ;");
#session.execute("CREATE TABLE demo.user2 ( vorname text PRIMARY KEY , name text , age int ) ;");
#session.execute("CREATE TABLE demo.user3 ( vorname text PRIMARY KEY , name text , age int ) ;");
#session.execute("CREATE TABLE demo.user4 ( vorname text PRIMARY KEY , name text , age int ) ;");
#session.execute("CREATE TABLE demo.user5 ( vorname text PRIMARY KEY , name text , age int ) ;");
# Tabellen mit Inhalt fuellen
print("Fuege Inhalt in Tabellen ein")
session.execute("INSERT INTO demo.user0 (vorname, name, age) VALUES ('DEMO_vorname0', 'DEMO_name0', 20)");
#session.execute("INSERT INTO demo.user1 (vorname, name, age) VALUES ('DEMO_vorname1', 'DEMO_name1', 21)");
#session.execute("INSERT INTO demo.user2 (vorname, name, age) VALUES ('DEMO_vorname2', 'DEMO_name2', 22)");
#session.execute("INSERT INTO demo.user3 (vorname, name, age) VALUES ('DEMO_vorname3', 'DEMO_name3', 23)");
#session.execute("INSERT INTO demo.user4 (vorname, name, age) VALUES ('DEMO_vorname4', 'DEMO_name4', 24)");
# Zeitmessung stoppen
print("Stoppe Zeitmessung")
ZeitEnde = datetime.now()
ZeitGesamt = ZeitEnde - ZeitAnfang
print(ZeitGesamt.seconds + ZeitGesamt.microseconds / 1E6, " Sekungen, Millisekunden")
# 5 Sekungen Pause
time.sleep(5)
# Keyspace loeschen
print("Loesche Keyspace DEMO")
session.execute("DROP KEYSPACE demo;");
# Wenn keine Fehler entstanden sind, dann:
print("Benchmark vollstaendig!")
print("(c) Marc G. 2015")
Mein Problem an der Sache ist nun, dass ich immer folgenden Output-Fehler bekomme, mit welchen ich nichts anfangen kann als Python-Neuling:
Code: Alles auswählen
Baue Verbindung zum Cluster auf
Starte Zeitmessung
Erstelle Keyspace
Benutze DEMO keyspace
Erstelle Tabellen DEMO.USER0-5
Fuege Inhalt in Tabellen ein
Stoppe Zeitmessung
(8.820948, ' Sekungen, Millisekunden')
Loesche Keyspace DEMO
Traceback (most recent call last):
File "benchmark_marc_final.py", line 51, in <module>
session.execute("DROP KEYSPACE demo;");
File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 1615, in execute
result = future.result(timeout)
File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 3156, in result
raise OperationTimedOut(errors=self._errors, last_host=self._current_host)
cassandra.OperationTimedOut: errors={}, last_host=192.168.178.51
Ich hoffe und poche auf Eure Erfahrenheit und bedanke mich im Voraus.
LG,
ColonelHoagen