簡體   English   中英

錯誤:無法找到或加載主類,Cassandra

[英]Error: Could not find or load main class, Cassandra

我正在嘗試在 Centos 服務器上構建 Casandra 項目。 我從這里下載了文件。

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

這是 README.txt 文件

This short guide will walk you through getting a basic one node cluster up
and running, and demonstrate some simple reads and writes.

  * 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

Note: The sample configuration files in conf/ determine the file-system 
locations Cassandra uses for logging and data storage. You are free to
change these to suit your own environment and adjust the path names
used here accordingly.

Now that we're ready, let's start it up!

  * bin/cassandra -f

由於 README.txt 文件建議我按照這些說明來適應我的情況(我不是 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

由於我不是服務器上的 root,因此無法在/var文件夾下創建文件。 因此,我在apache-cassandra-2.0.6-src下創建了新文件夾var並將我的liblog文件放在那里。 然后我按照 README.txt 文件中的下一個說明進行操作。

bin/cassandra -f

然而,無論我嘗試過什么都不好,我總是收到這個錯誤。

Error: Could not find or load main class org.apache.cassandra.service.CassandraDaemon

我該如何解決這個問題?

我的java版本

java -version

java version "1.7.0_51"
OpenJDK Runtime Environment (rhel-2.4.4.1.el6_5-x86_64 u51-b02)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

編輯:作為額外的信息,我也在我的電腦上嘗試了這個說明。 與使用sudo README.txt 文件完全相同,並且它有效。

我看到您已經下載了源包 ( apache-cassandra-2.0.6-src.tar.gz ),但您發布的說明似乎假定它已經構建。

需要先構建源碼包才可以使用; 在某處會有一套單獨的說明。

我懷疑您寧願直接運行它而不是從源代碼構建它。 您可能打算下載二進制包apache-cassandra-2.0.6-bin.tar.gz (注意“bin”,而不是“src”——這是在可下載檔案中將二進制文件與源文件分開時的傳統命名約定) . 使用該軟件包,您可以立即運行它。 對於源包,您需要先按照構建說明編譯 cassandra。

我還懷疑您在 PC 端下載了二進制包,這就是它在那里工作的原因。

如果您確實需要從源代碼構建:

  1. 如果您還沒有安裝antant-optional ,請安裝它。
  2. 將源存檔解壓縮到某個位置,然后在基本目錄( build.xml所在的位置)中解壓縮:

     ant release
  3. 煮一杯咖啡(最后的rat任務需要永遠)。
  4. 二進制檔案將在build中創建, build發行版可以在build/dist找到。

做一個出口 CASSANDRA_HOME=cassandra 的位置

應該可以在 2.0.6 中工作,我當時沒有設置該變量並在設置這些變量后進行了驗證。

$ 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

實際上你也可以在 cassandra-2.0.6 目錄中設置 CASSANDRA_HOME= 。 如果您從 cassandra 目錄執行導出命令,請將其設置為空值。

CASSANDRA_HOME 的路徑對我來說不正確。 在我設置正確的路徑后,它完美運行。

cassandra.yaml配置文件中,更改

commitlog_directory
data_file_directories
saved_caches_directory

您指定的路徑的屬性,因為它們不再是/var/lib...

您需要將它們設置為指向目錄實際所在的位置。

我遇到了確切的問題,我想在沒有任何 sudo 權限的情況下在用戶空間中安裝 cassandra。 我做了以下

在 cassandra.yaml 中,我將以下配置更改為本地路徑

commitlog_directory
data_file_directories
saved_caches_directory
log4j.appender.R.File

為特定的操作系統環境安裝了“bin”tar 文件,而不是“src”文件。

Export CASSANDRA_HOME=/userspace/cassandra-2.x

現在它對我來說很好用。

我在使用 Jdk 1.8_281 版本時遇到了同樣的問題。 降級到jdk 1.8_241版本后問題解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM