6 Stimmen

Fehler: Hauptklasse konnte nicht gefunden oder geladen werden, Cassandra

Ich versuche, das Casandra-Projekt auf einem Centos-Server zu erstellen. Ich habe die Datei von hier heruntergeladen.

http://apache.bilkent.edu.tr/cassandra/2.0.6/

Hier ist die README.txt-Datei

Dieser kurze Leitfaden führt Sie durch die Einrichtung eines einfachen Einzelknotenclusters 
und zeigt einige einfache Lese- und Schreibvorgänge.

  * tar -zxvf apache-cassandra-$VERSION.tar.gz
  * cd apache-cassandra-$VERSION
  * sudo mkdir -p /var/log/cassandra
  * sudo chown -R `whoami` /var/log/cassandra
  * sudo mkdir -p /var/lib/cassandra
  * sudo chown -R `whoami` /var/lib/cassandra

Hinweis: Die Beispil-Konfigurationsdateien in conf/ bestimmen die Dateisystem 
Speicherorte, die von Cassandra für das Logging und die Datenspeicherung verwendet werden. Sie können 
diese an Ihre eigene Umgebung anpassen und die Pfadnamen entsprechend anpassen.

Jetzt, da wir bereit sind, starten wir es!

  * bin/cassandra -f

Wie in der README.txt-Datei vorgeschlagen, habe ich diese Anweisungen befolgt und an meine Situation angepasst (ich bin nicht root).

tar -zxvf apache-cassandra-2.0.6-src.tar.gz
cd apache-cassandra-2.0.6-src
mkdir -p var/log/cassandra
chown -R `whoami` var/log/cassandra
mkdir -p var/lib/cassandra
chown -R `whoami` var/lib/cassandra

Da ich nicht root auf dem Server bin, kann ich meine Dateien nicht im /var-Ordner erstellen. Daher habe ich einen neuen Ordner var im apache-cassandra-2.0.6-src erstellt und meine lib und log Dateien dort abgelegt. Dann folgte ich den nächsten Anweisungen aus der README.txt-Datei.

bin/cassandra -f

Jedoch, egal was ich versucht habe, es funktioniert nicht, ich erhalte immer diesen Fehler.

Fehler: Hauptklasse org.apache.cassandra.service.CassandraDaemon konnte nicht gefunden oder geladen werden

Wie kann ich dieses Problem beheben?

Meine Java-Version

java -version

java version "1.7.0_51"
OpenJDK-Laufzeitumgebung (rhel-2.4.4.1.el6_5-x86_64 u51-b02)
OpenJDK 64-Bit Server-VM (Build 24.45-b08, gemischter Modus)

EDIT: Als zusätzliche Information habe ich diese Anweisungen auch auf meinem PC ausprobiert. Genauso wie in der README.txt-Datei mit sudo und es hat funktioniert.

12voto

Jason C Punkte 35780

Ich sehe, dass Sie das Quellpaket heruntergeladen haben (apache-cassandra-2.0.6-src.tar.gz), aber die von Ihnen geposteten Anweisungen scheinen anzunehmen, dass es bereits erstellt wurde.

Sie müssen das Quellpaket erst erstellen, bevor Sie es verwenden können; irgendwo wird es separate Anweisungen dafür geben.

Ich vermute, Sie möchten es lieber ausführen, anstatt es aus dem Quellcode zu erstellen. Sie haben wahrscheinlich das Binärpaket herunterladen wollen apache-cassandra-2.0.6-bin.tar.gz stattdessen (achten Sie auf "bin" und nicht "src" - dies ist eine traditionelle Benennungskonvention bei der Trennung von Binärdateien und Quellcode in herunterladbaren Archiven). Mit diesem Paket können Sie es direkt starten. Für das Quellpaket müssen Sie den Anweisungen zum Kompilieren von Cassandra folgen.

Ich vermute auch, dass Sie das Binärpaket auf der PC-Seite heruntergeladen haben, deshalb hat es dort funktioniert.

Wenn Sie tatsächlich aus dem Quellcode erstellen müssen:

  1. Installieren Sie ant und ant-optional, falls Sie es nicht schon haben.

  2. Entpacken Sie das Quellarchiv an einem beliebigen Ort, dann im Basisverzeichnis (wo sich build.xml befindet):

    ant release
  3. Machen Sie eine Tasse Kaffee (die rat-Aufgabe am Ende dauert eine Ewigkeit).

  4. Binärarchive werden in build erstellt, und eine gebaute Distribution finden Sie in build/dist.

7voto

skipy Punkte 3752

Do a export CASSANDRA_HOME=Standort von Cassandra

sollte in 2.0.6 funktionieren, ich habe es gerade überprüft, ohne diese Variable zu setzen und nachdem ich diese Variablen gesetzt habe.

$ export CASSANDRA_HOME=/usr/local/cassandra/dsc-cassandra-2.0.6
$ /usr/local/cassandra/dsc-cassandra-2.0.6/bin/cassandra

or
$ cd /usr/local/cassandra/dsc-cassandra-2.0.6
$ export CASSANDRA_HOME=
$ bin/cassandra

eigentlich können Sie auch CASSANDRA_HOME= im Verzeichnis cassandra-2.0.6 setzen. setzen Sie es auf einen leeren Wert, wenn Sie den export-Befehl aus dem Cassandra-Verzeichnis ausführen.

4voto

Vivek Punkte 41

Der Pfad für CASSANDRA_HOME war bei mir falsch. Nachdem ich den richtigen Pfad gesetzt habe, lief es perfekt.

0voto

Harry Punkte 1649

Im cassandra.yaml-Konfigurationsdatei, ändern Sie die

commitlog_directory
data_file_directories
saved_caches_directory

Eigenschaften auf den Pfad, den Sie angegeben haben, da sie nicht mehr /var/lib... sind.

Sie müssen sie auf den tatsächlichen Speicherort der Verzeichnisse zeigen lassen.

0voto

Rahul Punkte 10413

Ich stand vor genau demselben Problem, wo ich Cassandra im Benutzerbereich ohne sudo-Rechte installieren wollte. Ich habe Folgendes gemacht:

In der cassandra.yaml habe ich die folgende Konfiguration auf den lokalen Pfad geändert:

commitlog_directory
data_file_directories
saved_caches_directory
log4j.appender.R.File

Ich habe die "bin" Tar-Dateien für die jeweilige Betriebssystemumgebung installiert und nicht die "src" Datei.

Export CASSANDRA_HOME=/userspace/cassandra-2.x

Jetzt funktioniert es bei mir einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X